﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using CMISLibrary.Libraries;
using CMISLibrary;
using System.Data;
using System.Threading;
using BaocaoNPC.Usercontrols.reports;
using BaocaoNPC.common;
using bus_TienichNPC;


namespace CMIS2.BaocaoNPC.Usercontrols
{
    /// <summary>
    /// Interaction logic for TRUYTHU_CO.xaml
    /// </summary>
    public partial class TRUYTHU_CO : UserControl
    {
        
        #region Khai báo biến

        public String strMa_dviqly = NPCUS_DanhMuc.Pglobal.strMa_dviqly != "" && NPCUS_DanhMuc.Pglobal.strMa_dviqly != null ? NPCUS_DanhMuc.Pglobal.strMa_dviqly : "PA";
        public String strTenDNHap = NPCUS_DanhMuc.Pglobal.strTen_dangnhap != "" && NPCUS_DanhMuc.Pglobal.strTen_dangnhap != null ? NPCUS_DanhMuc.Pglobal.strTen_dangnhap : "PA";
        public String strTen_dviqly = NPCUS_DanhMuc.Pglobal.strTen_dviqly != "" && NPCUS_DanhMuc.Pglobal.strTen_dviqly != null ? NPCUS_DanhMuc.Pglobal.strTen_dviqly : "cty..";
        public String strTen_dviqly_CT = NPCUS_DanhMuc.Pglobal.strTen_dviqly_CT != "" && NPCUS_DanhMuc.Pglobal.strTen_dviqly_CT != null ? NPCUS_DanhMuc.Pglobal.strTen_dviqly_CT : "cap tren";

        public Int16 i16ThangHD = 0;
        public Int16 i16NamHD = 0;
        public Int16 i16Ky = 0;

        public int countKy = 0;
        Int64 Ky = 0;
        Int64 Ky1 = 1;
        Int64 Ky2 = 2;
        Int64 Ky3 = 3;
        Int64 Ky0 = 0;
        Int64 Ky21 = 21;
        Int64 Ky22 = 22;
        Int64 Ky10 = 10;
        int countKyTruoc = 0;
        int countKySau = 0;

        double sanluongKy1 = 0;
        double sanluongKy2 = 0;
        double sanluongKy3 = 0;
        double sanluongKy = 0;
        double sanluongKy10 = 0;
        double SanluongTruythu = 0;
        double SanluongSHBT = 0;

        DateTime dtNgayDKY;
        DateTime dtNgayCKY;

        DateTime dtNgayDKY10;
        DateTime dtNgayCKY10;
        DateTime dtimeNgaytao;

        int intSongayKy1 = 0;
        int intSongayKy2 = 0;
        int intSongayKy3 = 0;

        Int64 intID_TRTH = 0;
        Int64 nextSEQChiso = 0;
        Int64 ID_CHISO = 0;
        double Chisogannhat = 0;
        double Chisothao = 0;
        double sogiomatdienTT = 0;
        double sogiomatdienKy = 0;

        double SanluongTB = 0;
        double TongsongaycacKy = 0;
        double TongsanluongcacKy = 0;
        double SanluongDocduoc = 0;
        double SongayTT = 0;
        double SanluongFullKyTT = 0;
        double Thanhtien = 0;
        double ThanhtienTRuSLthao = 0;
        double thanhtienSHBTall = 0; 

        Int64 Id_chisoKy1 = 0;
        Int64 Id_chisoKy2 = 0;
        Int64 Id_chisoKy3 = 0;
        Int64 Id_chisoKy0 = 0;
        Int64 Id_chisoKy10 = 0;

        double CHISO_CU = 0;
        double CHISO_MOI = 0;

        //he so nhan
        int hsn = 0;

        public bool checkDocchiso = false;
        bool checkTinhTT = false;
        int intDongFocus = 0;

        string strError = "";
        public string strMa_ddo = "";
        public string strMa_khang = "";
        string strSo_cto = "";
        string strMa_cto = "";
        string strChuoi_gia = "";
        string strLoai_khang = "";
        string strDCHI_TTOAN = "";
        string strChuoi_tinhtien = "";
        string strChuoi_tinhtienSHBTall = "";

        string strBtnClick = "";
        string strSuaThemmoi = "";
        string strFind = "";
        string strNguoiTao = "";

        DataSet dsNPC_TRTH_KHANG_Entity;
        DataSet dsNPC_TRTH_CHISO_Entity;
        DataSet dsNPC_TRTH_DDO_Entity;
        DataSet dsKH;
        DataSet dsBD;
        DataSet dsCancu;

        //cls_NPC_TRTH_KHANG cls_KHANG = new cls_NPC_TRTH_KHANG();
        //cls_NPC_TRTH_CHISO cls_CHISO = new cls_NPC_TRTH_CHISO();
        //cls_NPC_TRTH_DDO cls_DDO = new cls_NPC_TRTH_DDO();
        //cls_TienichNPC_bus cls = new cls_TienichNPC_bus();
        //cls_NPC_LOG_ID cls_LOGID = new cls_NPC_LOG_ID();

        #endregion

        public TRUYTHU_CO()
        {
            InitializeComponent();
            Component.TabIndexManager.RegisterTabManager(this);

            dsNPC_TRTH_KHANG_Entity = new BCNPCEntities.TRUY_THU.NPC_TRTH_KHANG();
            dsNPC_TRTH_CHISO_Entity = new BCNPCEntities.TRUY_THU.NPC_TRTH_CHISO();
            dsNPC_TRTH_DDO_Entity = new BCNPCEntities.TRUY_THU.NPC_TRTH_DDO(); 

            btnThemMoi.IsEnabled = true;
            btnSua.IsEnabled = false;
            btnHuy.IsEnabled = false;
            btnGhi.IsEnabled = false;
            btnIn.IsEnabled = false;
            btnXoa.IsEnabled = false;
            btnLayDuLieu_I.IsEnabled = false;
            btnLayCancu.IsEnabled = false;

            ckbKhongdoc.IsChecked = false; 
            Enable_Items(false);
            Enable_KyCancu(false, 0);
            ReadOnly_ThongtinCancu();
            txtMa_TT.IsReadOnly = true;
            //txthsn.IsReadOnly = true;
            checkDocchiso = true;

            rdbSinhhoat.IsEnabled = false;
            rdbNgoaiSH.IsEnabled = false;

            ckbTunhap.IsEnabled = false;
            txtSoky.IsEnabled = false;

            
        }

        public void Del_cache()
        {
            countKy = 0;
            Ky = 0;
            Ky1 = 1;
            Ky2 = 2;
            Ky3 = 3;
            Ky0 = 0;

            sanluongKy1 = 0;
            sanluongKy2 = 0;
            sanluongKy3 = 0;
            sanluongKy = 0;
            SanluongTruythu = 0;

            intSongayKy1 = 0;
            intSongayKy2 = 0;
            intSongayKy3 = 0;

             intID_TRTH = 0;
             nextSEQChiso = 0;
             ID_CHISO = 0;
             Chisogannhat = 0;
             Chisothao = 0;
             sogiomatdienTT = 0;
             sogiomatdienKy = 0;

             SanluongTB = 0;
             TongsongaycacKy = 0;
             TongsanluongcacKy = 0;
             SanluongDocduoc = 0;
             SongayTT = 0;
             SanluongFullKyTT = 0;

             Id_chisoKy1 = 0;
             Id_chisoKy2 = 0;
             Id_chisoKy3 = 0;
             Id_chisoKy0 = 0;

             CHISO_CU = 0;
             CHISO_MOI = 0;
        }

        private bool Del_Data_Inserted(Int64 ID_TRTH)
        {
            try
            {
                bool checkDEL = false;

                checkDEL = GlobalServices.Service_Truythu.delete_NPC_TRTH_KHANG_by_IDTRTH(strMa_dviqly, ID_TRTH, ref strError);
                checkDEL = GlobalServices.Service_Truythu.delete_NPC_TRTH_CHISO_by_IDTRTH(strMa_dviqly, ID_TRTH, ref strError);
                checkDEL = GlobalServices.Service_Truythu.delete_NPC_TRTH_DDO_by_IDTRTH(strMa_dviqly, ID_TRTH, ref strError);                
                return checkDEL;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return false;
            }

        }

        public void ReadOnly_ThongtinCancu()// cho sua het
        {
            //txtchiso_gannhat.IsReadOnly = false;
            //dtpGhigannhat.IsEnabled = false;
            //txtKy1.IsReadOnly = true;
            //txtKy2.IsReadOnly = true;
            //txtKy3.IsReadOnly = true;
            //dtpTungay1.IsEnabled = false;
            //dtpTungay2.IsEnabled = false;
            //dtpTungay3.IsEnabled = false;
            //dtpDenngay1.IsEnabled = false;
            //dtpDenngay2.IsEnabled = false;
            //dtpDenngay3.IsEnabled = false;
        }

        public bool check_values_Ky()
        {
            if (dtpTungay1.SelectedDate.HasValue && dtpDenngay1.SelectedDate.HasValue)
            {
                if (dtpTungay1.SelectedDate.Value.Date > dtpDenngay1.SelectedDate.Value.Date)
                {
                    MessageBox.Show("Kỳ I: ngày cuối kỳ lớn hơn đầu kỳ! ");
                    return false;
                }
            }

            if (dtpTungay2.SelectedDate.HasValue && dtpDenngay2.SelectedDate.HasValue)
            {
                if (dtpTungay2.SelectedDate.Value.Date > dtpDenngay2.SelectedDate.Value.Date)
                {
                    MessageBox.Show("Kỳ II: ngày cuối kỳ lớn hơn đầu kỳ! ");
                    return false;
                }
            }

            if (dtpTungay3.SelectedDate.HasValue && dtpDenngay3.SelectedDate.HasValue)
            {
                if (dtpTungay3.SelectedDate.Value.Date > dtpDenngay3.SelectedDate.Value.Date)
                {
                    MessageBox.Show("Kỳ III: ngày cuối kỳ lớn hơn đầu kỳ! ");
                    return false;
                }
            }

            if (dtpGhigannhat.SelectedDate.HasValue && dtpDungHoatdong.SelectedDate.HasValue)
            {
                if (dtpGhigannhat.SelectedDate.Value.Date > dtpDungHoatdong.SelectedDate.Value.Date)
                {
                    MessageBox.Show("Ngày ghi chỉ số gần nhất lớn hơn ngày công tơ dừng hoạt động !");
                    return false;                         
                }
            }

            return true;
        }

        public bool check_Input_Items()
        {
            Int32 intt = 0;
            decimal dc = 0 ;

            if (txtMa_ddo_I.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Mã điểm đo trống !");
                txtMa_ddo_I.Focus();
                return false;
            }

            if (txtTen_khang.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập tên khách hàng ");
                txtTen_khang.Focus();
                return false;
            }

            if (txtDia_chi.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập địa chỉ khách hàng !");
                txtDia_chi.Focus();
                return false;
            }

            if (txtDai_dien_mua.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập đại diện bên mua");
                txtDai_dien_mua.Focus();
                return false;
            }

            if (txtChucvu_mua.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập chức vụ của đại diện bên mua");
                txtChucvu_mua.Focus();
                return false;
            }

            //if (txtMa_TT.Text.Trim().ToString() == string.Empty)
            //{
            //    MessageBox.Show("Không có mã truy thu !");
            //    return false;
            //}

            if (txtHoten1.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập họ tên đại diện bên bán điện !");
                txtHoten1.Focus();
                return false;
            }

            if (txtChucvu1.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập chức vụ của đại diện bên bán ");
                txtChucvu1.Focus();
                return false;
            }

            if (!dtpThangNamTT.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập tháng năm phát hành hóa đơn truythu/thoái hoàn !");
                return false;
            }


            if (txtNguyennhan.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập nguyên nhân !");
                txtNguyennhan.Focus();
                return false;
            }

            if (!decimal.TryParse(txtchiso_gannhat.Text.Trim(), out dc))
            {
                MessageBox.Show("Hãy nhập chỉ số công tơ kỳ gần nhất !");
                txtchiso_gannhat.Focus();
                return false;
            }

            if (!dtpGhigannhat.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày ghi gần nhất !");
                return false;
            }            
            
            if (!dtpDungHoatdong.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày dừng hoạt động !");
                return false;
            }

            if (!dtpDungCapDien.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày dừng cấp điện !");
                return false;
            }

            if (!dtpKiemtra.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày kiểm tra !");
                return false;
            }

            if (txtSobbktra.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số biên bản kiểm tra !");
                txtSobbktra.Focus();
                return false;
            }

            if (dtpThangNamTT.SelectedDate.Value.Date.Month < dtpKiemtra.SelectedDate.Value.Date.Month)
            {
                MessageBox.Show("Tháng phát hành hóa đơn truy thu phải bằng hoặc sau tháng phát hiện sự cố !");
                return false;
            }

            //if (!dtpNgayKdinh.SelectedDate.HasValue)
            //{
            //    MessageBox.Show("Hãy nhập ngày kiểm định !");
            //    return false;
            //}

            //if (txtSobbkd.Text.Trim().ToString() == string.Empty)
            //{
            //    MessageBox.Show("Hãy nhập số biên bản kiểm định !");
            //    txtSobbkd.Focus();
            //    return false;
            //}

            if (ckbKhongdoc.IsChecked == false)
            {
                if (!decimal.TryParse(txtChisothao.Text.Trim(),out dc))
                {
                    MessageBox.Show("Hãy nhập chỉ số tháo !");
                    txtChisothao.Focus();
                    return false;
                }

                if (!dtpDungHoatdong.SelectedDate.HasValue)
                {
                    MessageBox.Show("Hãy nhập ngày tháo !");
                    return false;
                }
            }

            if (!decimal.TryParse(txthsn.Text.Trim(), out dc))
            {
                MessageBox.Show("Hãy nhập hệ số nhân !");
                txthsn.Focus();
                return false;
            }
            else
            {
                if (Convert.ToDecimal(txthsn.Text.Trim()) <= 0)
                {
                    MessageBox.Show("Hệ số nhận phải lớn hơn 0");
                    txthsn.Focus();
                    return false;
                }                
            }
            
            //kiểm tra sản lượng các kỳ
            if (countKy >= 1)
            {
                if (decimal.TryParse(txtKy1.Text.Trim(), out dc))
                {
                    if (!dtpTungay1.SelectedDate.HasValue || !dtpDenngay1.SelectedDate.HasValue)
                    {
                        MessageBox.Show("Hãy nhập đủ ngày cho kỳ I ");
                        return false;
                    }
                }
                else
                {
                    MessageBox.Show("Hãy nhập sản lượng cho kỳ I ");
                    txtKy1.Focus();
                    return false;
                }
            }

            if (countKy >= 2)
            {
                if (decimal.TryParse(txtKy2.Text.Trim(), out dc))
                {
                    if (!dtpTungay2.SelectedDate.HasValue || !dtpDenngay2.SelectedDate.HasValue)
                    {
                        MessageBox.Show("Hãy nhập đủ ngày cho kỳ II ");
                        return false;
                    }
                }
                else
                {
                    MessageBox.Show("Hãy nhập sản lượng cho kỳ II ");
                    txtKy2.Focus();
                    return false;
                }
            }

            if (countKy >= 3)
            {
                if (decimal.TryParse(txtKy3.Text.Trim(), out dc))
                {
                    if (!dtpTungay3.SelectedDate.HasValue || !dtpDenngay3.SelectedDate.HasValue)
                    {
                        MessageBox.Show("Hãy nhập đủ ngày cho kỳ III ");
                        return false;
                    }
                }
                else
                {
                    MessageBox.Show("Hãy nhập sản lượng cho kỳ III ");
                    txtKy3.Focus();
                    return false;
                }
            }

            if (!decimal.TryParse(txtSogiomatdienTT.Text.Trim(), out dc))
            {
                MessageBox.Show("Nhập thời gian mất điện trong khoảng truy thu !");
                txtSogiomatdienTT.Focus();
                return false;
            }

            if (!decimal.TryParse(txtSogiomatdiencacKy.Text.Trim(), out dc))
            {
                MessageBox.Show("Nhập thời gian mất điện trong các kỳ căn cứ !");
                txtSogiomatdiencacKy.Focus();
                return false;
            }

            if (txtSocto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số công tơ !");
                txtSocto.Focus();
                return false;
            }

            if (txtLoai_cto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập loại công tơ !");
                txtLoai_cto.Focus();
                return false;
            }

            if (txtMacto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập mã công tơ !");
                txtMacto.Focus();
                return false;
            }
            
            return true;
        }

        public bool check_Input_Tutinh()
        {
            Int32 intt = 0;
            decimal dc = 0 ;

            if (txtMa_ddo_I.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Mã điểm đo trống !");
                txtMa_ddo_I.Focus();
                return false;
            }

            if (txtTen_khang.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập tên khách hàng ");
                txtTen_khang.Focus();
                return false;
            }

            if (txtDia_chi.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập địa chỉ khách hàng !");
                txtDia_chi.Focus();
                return false;
            }

            if (txtDai_dien_mua.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập đại diện bên mua");
                txtDai_dien_mua.Focus();
                return false;
            }

            if (txtChucvu_mua.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập chức vụ của đại diện bên mua");
                txtChucvu_mua.Focus();
                return false;
            }
            

            if (txtHoten1.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập họ tên đại diện bên bán điện !");
                txtHoten1.Focus();
                return false;
            }

            if (txtChucvu1.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập chức vụ của đại diện bên bán ");
            }

            if (!dtpThangNamTT.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập tháng năm phát hành hóa đơn truythu/thoái hoàn !");
                return false;
            }

            if (txtNguyennhan.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập nguyên nhân !");
                txtNguyennhan.Focus();
                return false;
            }

            if (!dtpDungCapDien.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày dừng cấp điện");
                return false;
            }

            if (!dtpKiemtra.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày kiểm tra !");
                return false;
            }

            if (txtSobbktra.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số biên bản kiểm tra !");
                txtSobbktra.Focus();
                return false;
            }

            if (dtpThangNamTT.SelectedDate.Value.Date.Month < dtpKiemtra.SelectedDate.Value.Date.Month)
            {
                MessageBox.Show("Tháng phát hành hóa đơn truy thu phải bằng hoặc sau tháng phát hiện sự cố !");
                return false;
            }

            if (!dtpNgaythoathuan.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày của Biên bản thỏa thuận !");
                return false;
            }

            if (txtSobbTThuan.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số biên bản thỏa thuận !");
                txtSobbTThuan.Focus();
                return false;
            }

            if (txtSocto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số công tơ !");
                txtSocto.Focus();
                return false;
            }

            if (txtLoai_cto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập loại công tơ !");
                txtLoai_cto.Focus();
                return false;
            }

            if (txtMacto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập mã công tơ !");
                txtMacto.Focus();
                return false;
            }

            if (!decimal.TryParse(txtSLtt.Text.Trim(), out dc))
            {
                MessageBox.Show("Hãy nhập sản lượng tự tính !");
                txtSLtt.Focus();
                return false;
            }

            if (!decimal.TryParse(txtTientt.Text.Trim(), out dc))
            {
                MessageBox.Show("Hãy nhập tiền truy thu tự tính (chưa tính thuế) !");
                txtTientt.Focus();
                return false;
            }

            return true;

        }

        public bool check_Input_Thoaihoan()
        {
            Int32 intt = 0;
            decimal dc = 0;

            if (txtMa_ddo_I.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Mã điểm đo trống !");
                txtMa_ddo_I.Focus();
                return false;
            }

            if (txtTen_khang.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập tên khách hàng ");
                txtTen_khang.Focus();
                return false;
            }

            if (txtDia_chi.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập địa chỉ khách hàng !");
                txtDia_chi.Focus();
                return false;
            }

            if (txtDai_dien_mua.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập đại diện bên mua");
                txtDai_dien_mua.Focus();
                return false;
            }

            if (txtChucvu_mua.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập chức vụ của đại diện bên mua");
                txtChucvu_mua.Focus();
                return false;
            }


            if (txtHoten1.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập họ tên đại diện bên bán điện !");
                txtHoten1.Focus();
                return false;
            }

            if (txtChucvu1.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập chức vụ của đại diện bên bán ");
            }

            if (!dtpThangNamTT.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập tháng năm phát hành hóa đơn truythu/thoái hoàn !");
                return false;
            }

            if (txtNguyennhan.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập nguyên nhân !");
                txtNguyennhan.Focus();
                return false;
            }

            if (!dtpDungCapDien.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày dừng cấp điện");
                return false;
            }

            if (!dtpKiemtra.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày kiểm tra !");
                return false;
            }

            if (txtSobbktra.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số biên bản kiểm tra !");
                txtSobbktra.Focus();
                return false;
            }

            if (!dtpNgayKdinh.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày kiểm định !");
                return false;
            }

            if (txtSobbkd.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số biên bản kiểm định !");
                txtSobbkd.Focus();
                return false;
            }

            if (txtChisothao.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập chỉ số tháo !");
                txtChisothao.Focus();
                return false;
            }

            if (dtpThangNamTT.SelectedDate.Value.Date.Month < dtpKiemtra.SelectedDate.Value.Date.Month)
            {
                MessageBox.Show("Tháng phát hành hóa đơn truy thu phải bằng hoặc sau tháng phát hiện sự cố !");
                return false;
            }            

            if (txtSocto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số công tơ !");
                txtSocto.Focus();
                return false;
            }

            if (txtLoai_cto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập loại công tơ !");
                txtLoai_cto.Focus();
                return false;
            }

            if (txtMacto.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập mã công tơ !");
                txtMacto.Focus();
                return false;
            }

            if (txtSokyCancuTH.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập số chu kỳ liền kề làm căn cứ !");
                txtSokyCancuTH.Focus();
                return false;
            }

            if (!dtpTungayCancuTH.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày bắt đầu làm căn cứ !");
                return false;
            }

            if (!dtpDenngayCancuTH.SelectedDate.HasValue)
            {
                MessageBox.Show("Hãy nhập ngày kết thúc căn cứ !");
                return false;
            }

            if (dtpTungayCancuTH.SelectedDate.Value.Date >= dtpDenngayCancuTH.SelectedDate.Value.Date)
            {
                MessageBox.Show("Ngày bắt đầu làm căn cứ phải nhỏ hơn ngày kết thúc căn cứ !");
                return false;
            }

            if (txtSaiso.Text.Trim().ToString() == string.Empty)
            {
                MessageBox.Show("Hãy nhập phần trăm sai số !");
                txtSaiso.Focus();
                return false;
            }

            if (!decimal.TryParse(txtSaiso.Text.Trim().ToString(), out dc))
            {
                MessageBox.Show("Hãy nhập lại phần trăm sai số !");
                txtSaiso.Focus();
                return false;
            }

            if (!decimal.TryParse(txtTienTH.Text.Trim().ToString(), out dc))
            {
                MessageBox.Show("Hãy nhập số tiền thoái hoàn !");
                txtTienTH.Focus();
                return false;
            }

            return true;

        }

        public bool checkPhut(TextBox tb)
        {
            Int32 intt = Convert.ToInt32(tb.Text.Trim());

            if (intt < 0 || intt > 59)
            {
                MessageBox.Show("Phút phải nhập từ 0 - 59");
                tb.Focus();
                return false;
            }
            else
                return true;
        }

        public bool checkGio(TextBox tb)
        {
            Int32 intt = Convert.ToInt32(tb.Text.Trim());

            if (intt < 0 || intt > 23)
            {
                MessageBox.Show("Giờ phải nhập từ 0 - 23");
                tb.Focus();
                return false;
            }
            else
                return true;
        }

        public void Enable_Items(bool var)
        {
            txtMa_ddo_I.IsEnabled = var;
            txtTen_khang.IsEnabled = var;
            txtDia_chi.IsEnabled = var;
            txtDai_dien_mua.IsEnabled = var;
            txtChucvu_mua.IsEnabled = var;
            //txtMa_TT.IsEnabled = var;

            txtHoten1.IsEnabled = var;
            txtHoten2.IsEnabled = var;
            txtChucvu1.IsEnabled = var;
            txtChucvu2.IsEnabled = var;
            dtpThangNamTT.IsEnabled = var;

            txtNguyennhan.IsEnabled = var;
            cboLOAI_SUCO.IsEnabled = var;
            txtchiso_gannhat.IsEnabled = var;

            dtpKiemtra.IsEnabled = var;
            txtSobbktra.IsEnabled = var;
            txtChisothao.IsEnabled = var;
            dtpDungCapDien.IsEnabled = var;
            dtpNgayKdinh.IsEnabled = var;
            txtSobbkd.IsEnabled = var;
            dtpDungHoatdong.IsEnabled = var;
            dtpGhigannhat.IsEnabled = var;
            txtSogiomatdienTT.IsEnabled = var;

            txthsn.IsEnabled = var;
            if (var == true)
            {
                //if (ckbTunhap.IsChecked == true)
                //{         
                //    txthsn.IsEnabled = true;
                //}
                //else
                //{
                //    txthsn.IsEnabled = false;
                //}

                if (strBtnClick == "btnThemMoi")
                {
                    //ckbTunhap.IsEnabled = var;
                    if (ckbTunhap.IsChecked == true)
                    {
                        txtSoky.IsEnabled = true;
                    }
                    else
                    {
                        txtSoky.IsEnabled = false;
                    }
                }
                else
                {
                    ckbTunhap.IsEnabled = false;
                    txtSoky.IsEnabled = false;
                }
            }
            else
            {
                ckbTunhap.IsEnabled = false;                
                txtSoky.IsEnabled = false;
                rdbSinhhoat.IsEnabled = false;
                rdbNgoaiSH.IsEnabled = false;
                txthsn.IsEnabled = false;
            }
            //txtKy1.IsEnabled = var;
            //txtKy2.IsEnabled = var;
            //txtKy3.IsEnabled = var;
            //dtpTungay1.IsEnabled = var;
            //dtpTungay2.IsEnabled = var;
            //dtpTungay3.IsEnabled = var;
            //dtpDenngay1.IsEnabled = var;
            //dtpDenngay2.IsEnabled = var;
            //dtpDenngay3.IsEnabled = var;
            txtSogiomatdiencacKy.IsEnabled = var;
            txtSocto.IsEnabled = var;
            txtLoai_cto.IsEnabled = var;
            txtMacto.IsEnabled = var;

            ckbKhongdoc.IsEnabled = var;
            ckbTutinh.IsEnabled = var;
            ckbThoaihoan.IsEnabled = var;

            if (ckbTutinh.IsChecked == true)
            {
                if (var == true)
                {
                    ckbThoaihoan.IsEnabled = false;
                    ckbKhongdoc.IsEnabled = false;
                    ckbTunhap.IsEnabled = false;
                    ckbTutinh.IsEnabled = false;
                    txtSoky.IsEnabled = false;
                    dtpDungHoatdong.IsEnabled = false;
                    btnLayCancu.IsEnabled = false;
                    txtchiso_gannhat.IsEnabled = false;
                    dtpGhigannhat.IsEnabled = false;
                    txtChisothao.IsEnabled = false;
                    txthsn.IsEnabled = false;
                    txtSogiomatdienTT.IsEnabled = false;

                    txtSLtt.IsEnabled = true;
                    txtTientt.IsEnabled = true;
                    dtpNgaythoathuan.IsEnabled = true;
                    txtSobbTThuan.IsEnabled = true;
                }
                else
                {
                    txtSLtt.IsEnabled = false;
                    txtTientt.IsEnabled = false;
                    dtpNgaythoathuan.IsEnabled = false;
                    txtSobbTThuan.IsEnabled = false;
                }
            }

            if (ckbThoaihoan.IsChecked == true)
            {
                if (var == true)
                {
                    ckbThoaihoan.IsEnabled = false;
                    ckbKhongdoc.IsEnabled = false;
                    ckbTunhap.IsEnabled = false;
                    ckbTutinh.IsEnabled = false;
                    txtSoky.IsEnabled = false;
                    dtpDungHoatdong.IsEnabled = false;
                    btnLayCancu.IsEnabled = false;
                    txtchiso_gannhat.IsEnabled = false;
                    dtpGhigannhat.IsEnabled = false;
                    txtChisothao.IsEnabled = true;
                    txthsn.IsEnabled = false;
                    txtSogiomatdienTT.IsEnabled = false;

                    txtSokyCancuTH.IsEnabled = true;
                    dtpTungayCancuTH.IsEnabled = true;
                    dtpDenngayCancuTH.IsEnabled = true;
                    txtSaiso.IsEnabled = true;
                    txtTienTH.IsEnabled = true;
                }
                else
                {
                    txtSokyCancuTH.IsEnabled = false;
                    dtpTungayCancuTH.IsEnabled = false;
                    dtpDenngayCancuTH.IsEnabled = false;
                    txtSaiso.IsEnabled = false;
                    txtTienTH.IsEnabled = false;
                }
            }
        }

        public void Enable_KyCancu(bool var, int soky)
        {
            if (var == true)
            {
                if (soky == 1)
                {
                    txtKy1.IsEnabled = var;
                    dtpTungay1.IsEnabled = var;
                    dtpDenngay1.IsEnabled = var;

                    txtKy2.IsEnabled = false;
                    dtpTungay2.IsEnabled = false;
                    dtpDenngay2.IsEnabled = false;

                    txtKy3.IsEnabled = false;
                    dtpTungay3.IsEnabled = false;
                    dtpDenngay3.IsEnabled = false;
                }

                if (soky == 2)
                {
                    txtKy1.IsEnabled = var;
                    txtKy2.IsEnabled = var;
                    dtpTungay1.IsEnabled = var;
                    dtpTungay2.IsEnabled = var;
                    dtpDenngay1.IsEnabled = var;
                    dtpDenngay2.IsEnabled = var;

                    txtKy3.IsEnabled = false;
                    dtpTungay3.IsEnabled = false;
                    dtpDenngay3.IsEnabled = false;
                }

                if (soky >= 3)
                {
                    txtKy1.IsEnabled = var;
                    txtKy2.IsEnabled = var;
                    txtKy3.IsEnabled = var;
                    dtpTungay1.IsEnabled = var;
                    dtpTungay2.IsEnabled = var;
                    dtpTungay3.IsEnabled = var;
                    dtpDenngay1.IsEnabled = var;
                    dtpDenngay2.IsEnabled = var;
                    dtpDenngay3.IsEnabled = var;
                }
            }
            else
            {
                txtKy1.IsEnabled = var;
                txtKy2.IsEnabled = var;
                txtKy3.IsEnabled = var;
                dtpTungay1.IsEnabled = var;
                dtpTungay2.IsEnabled = var;
                dtpTungay3.IsEnabled = var;
                dtpDenngay1.IsEnabled = var;
                dtpDenngay2.IsEnabled = var;
                dtpDenngay3.IsEnabled = var;
            }
        }

        public void Items_text(string text)
        {
            txtMa_ddo_I.Text = text;
            txtTen_khang.Text = text;
            txtDia_chi.Text = text;
            txtDai_dien_mua.Text = text;
            txtChucvu_mua.Text = text;
            txtMa_TT.Text = text;
            txthsn.Text = text;

            txtHoten1.Text = text;
            txtHoten2.Text = text;
            txtChucvu1.Text = text;
            txtChucvu2.Text = text;
            dtpThangNamTT.Text = text;

            txtNguyennhan.Text = text;
            txtchiso_gannhat.Text = text;
            dtpKiemtra.Text = text;
            txtSobbktra.Text = text;
            dtpGhigannhat.Text = text;
            txtChisothao.Text = text;
            dtpDungCapDien.Text = text;
            dtpNgayKdinh.Text = text;
            txtSobbkd.Text = text;
            dtpDungHoatdong.Text = text;
            txtSogiomatdienTT.Text = text;

            txtSoky.Text = text;
            txtKy1.Text = text;
            txtKy2.Text = text;
            txtKy3.Text = text;
            dtpTungay1.Text = text;
            dtpTungay2.Text = text;
            dtpTungay3.Text = text;
            dtpDenngay1.Text = text;
            dtpDenngay2.Text = text;
            dtpDenngay3.Text = text;
            txtSogiomatdiencacKy.Text = text;
            txtSocto.Text = text;
            txtLoai_cto.Text = text;
            txtMacto.Text = text;
            txtSLtt.Text = text;
            txtTientt.Text = text;
            dtpNgaythoathuan.Text = text;
            txtSobbTThuan.Text = text;

            txtSokyCancuTH.Text = text;
            dtpTungayCancuTH.Text = text;
            dtpDenngayCancuTH.Text = text;
            txtSaiso.Text = text;
            txtTienTH.Text = text;
        }

        private void CheckIsEnableButtonSuaXoa()
        {

            if (txtMa_TT.Text.ToString()!= string.Empty)
            {
                if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
                {
                    btnSua.IsEnabled = false;
                    btnXoa.IsEnabled = false;
                    btnIn.IsEnabled = false;
                }
                else
                {
                    btnSua.IsEnabled = true;
                    btnXoa.IsEnabled = true;
                    btnIn.IsEnabled = true;
                }
            }
            else
            {
                btnSua.IsEnabled = false;
                btnXoa.IsEnabled = false;
                btnIn.IsEnabled = false;
            }
        }

        private void setEntity_KH(string strBtnClick)
        {
            try
            {
                dsNPC_TRTH_KHANG_Entity.Tables["NPC_TRTH_KHANG"].Clear();
                DataRow dr = dsNPC_TRTH_KHANG_Entity.Tables["NPC_TRTH_KHANG"].NewRow();
                switch (strBtnClick)
                {
                    case "btnGhi":

                        dr["ID_TRTH"] = txtMa_TT.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["TEN_DDIEN1"] = txtHoten1.Text.ToString().Trim();
                        dr["CVU_DDIEN1"] = txtChucvu1.Text.ToString().Trim();
                        if(txtHoten2.Text.Trim().ToString()!= string.Empty)
                        {
                            dr["TEN_DDIEN2"] =  txtHoten2.Text.ToString().Trim();
                        }
                        else
                        {
                            dr["TEN_DDIEN2"] = null;
                        }

                        if(txtChucvu2.Text.Trim().ToString()!= string.Empty)
                        {
                            dr["CVU_DDIEN2"] = txtChucvu2.Text.ToString().Trim();
                        }
                        else
                        {
                            dr["CVU_DDIEN2"] = null;
                        }

                        
                            dr["TEN_DDIEN3"] = null;

                        
                            dr["CVU_DDIEN3"] = null;

                        dr["MA_KHANG"] = strMa_khang;
                        dr["TEN_KHANG"] = txtTen_khang.Text.ToString().Trim();
                        dr["DIA_CHI"] = txtDia_chi.Text.ToString().Trim();
                        if (strSuaThemmoi == "THEM")
                        {
                            dr["NGUOI_TAO"] = strTenDNHap;
                            dr["NGAY_TAO"] = DateTime.Now;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }
                        else
                        {
                            dr["NGUOI_TAO"] = strNguoiTao;
                            dr["NGAY_TAO"] = dtimeNgaytao;
                            dr["NGUOI_SUA"] = strTenDNHap;
                            dr["NGAY_SUA"] = DateTime.Now;
                        }
                        dr["DDIEN_MUA"] = txtDai_dien_mua.Text.Trim().ToString().Trim();
                        dr["CVU_MUA"] = txtChucvu_mua.Text.Trim().ToString().Trim();
                        dr["NGUYEN_NHAN"] = txtNguyennhan.Text.Trim().ToString().Trim();

                        if (rdbSinhhoat.IsChecked == true)
                        {
                            dr["LOAI_KHANG"] = "10";
                        }
                        else
                        {
                            dr["LOAI_KHANG"] = "11";
                        }
                        dr["DCHI_TTOAN"] = strDCHI_TTOAN;

                        dr["LOAI_CTO"] = txtLoai_cto.Text.ToString().Trim();
                        if (dtpNgayKdinh.SelectedDate.HasValue)
                        {
                            dr["NGAY_KDINH"] = dtpNgayKdinh.SelectedDate.Value.Date;
                        }
                        else
                        {
                            dr["NGAY_KDINH"] = "";
                        }
                        dr["SO_BB_KDINH"] = txtSobbkd.Text.Trim().ToString() == string.Empty ? " " : txtSobbkd.Text.Trim().ToString();

                        if (ckbThoaihoan.IsChecked == true)
                        {
                            dr["CAN_CU"] = txtSaiso.Text.Trim();
                        }
                        else
                        {
                            dr["CAN_CU"] = " ";
                        }
                        dr["DDIEN_MUA2"] = " ";
                        dr["CVU_MUA2"] = " ";
                        dr["HS_COSFI"] = "";
                        dr["KCOSFI"] = "";
                        dr["SO_BB_KTRA"] = txtSobbktra.Text.Trim().ToString() == string.Empty ? " " : txtSobbktra.Text.Trim().ToString();
                        dr["NGAY_KTRA"] = dtpKiemtra.Text.ToString() == string.Empty? Convert.ToDateTime("01/01/1000"): dtpKiemtra.SelectedDate.Value.Date;
                        dr["THANG_TT"] = dtpThangNamTT.SelectedDate.Value.Month;
                        dr["NAM_TT"] = dtpThangNamTT.SelectedDate.Value.Year;
                        dr["SO_BB_TTHUAN"] = txtSobbTThuan.Text.Trim().ToString() == string.Empty ? " " : txtSobbTThuan.Text.Trim().ToString();
                        dr["NGAY_TTHUAN"] = dtpNgaythoathuan.Text.ToString() == string.Empty ? Convert.ToDateTime("01/01/1000"): dtpNgaythoathuan.SelectedDate.Value.Date;

                        if (cboLOAI_SUCO.SelectedIndex == 0)
                        {
                            dr["LOAI_SUCO"] = 0;
                        }
                        if (cboLOAI_SUCO.SelectedIndex == 1)
                        {
                            dr["LOAI_SUCO"] = 1;
                        }
                        if (cboLOAI_SUCO.SelectedIndex == 2)
                        {
                            dr["LOAI_SUCO"] = 2;
                        }
                        if (cboLOAI_SUCO.SelectedIndex == 3)
                        {
                            dr["LOAI_SUCO"] = 3;
                        }

                        break;

                    case "btnXoa":
                        dr["ID_TRTH"] = txtMa_TT.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["TEN_DDIEN1"] = txtHoten1.Text.ToString();
                        dr["CVU_DDIEN1"] = txtChucvu1.Text.ToString();                       
                        dr["TEN_DDIEN2"] = null;
                        dr["CVU_DDIEN2"] = null;
                        dr["TEN_DDIEN3"] = null;
                        dr["CVU_DDIEN3"] = null;
                        dr["MA_KHANG"] = strMa_khang;
                        dr["TEN_KHANG"] = txtTen_khang.Text.ToString();
                        dr["DIA_CHI"] = txtDia_chi.Text.ToString();
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;
                        dr["DDIEN_MUA"] = " ";
                        dr["CVU_MUA"] = " ";
                        dr["NGUYEN_NHAN"] = " ";
                        dr["LOAI_KHANG"] = "10";
                        dr["DCHI_TTOAN"] = strDCHI_TTOAN;
                        dr["LOAI_CTO"] = " ";
                        dr["NGAY_KDINH"] = DateTime.Now;
                        dr["CAN_CU"] = " ";
                        dr["DDIEN_MUA2"] = " ";
                        dr["CVU_MUA2"] = " ";
                        dr["HS_COSFI"] = "";
                        dr["KCOSFI"] = "";

                        dr["SO_BB_KDINH"] = " ";
                        dr["SO_BB_KTRA"] = " ";
                        dr["NGAY_KTRA"] = Convert.ToDateTime("01/01/1000");
                        dr["THANG_TT"] = 0;
                        dr["NAM_TT"] = 0;
                        dr["SO_BB_TTHUAN"] = " ";
                        dr["NGAY_TTHUAN"] = Convert.ToDateTime("01/01/1000");
                        dr["LOAI_SUCO"] = 0;

                        break;
                    case "btnTimKiem":
                        if (txtMa_TT_S.Text.Trim().ToString() != string.Empty)
                        {
                            dr["ID_TRTH"] = txtMa_TT_S.Text.Trim().ToString();
                        }
                        else
                        {
                            dr["ID_TRTH"] = -1;
                        }
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["TEN_DDIEN1"] = " ";
                        dr["CVU_DDIEN1"] = " ";
                        dr["TEN_DDIEN2"] = null;
                        dr["CVU_DDIEN2"] = null;
                        dr["TEN_DDIEN3"] = null;
                        dr["CVU_DDIEN3"] = " ";

                        if (txtMa_khang_S.Text.Trim().ToString() != string.Empty)
                        {
                            dr["MA_KHANG"] = txtMa_khang_S.Text.Trim().ToString();
                        }
                        else
                        {
                            dr["MA_KHANG"] = " ";
                        }
                        dr["TEN_KHANG"] = " ";
                        dr["DIA_CHI"] = " ";
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;
                        dr["DDIEN_MUA"] = " ";
                        dr["CVU_MUA"] = " ";
                        dr["NGUYEN_NHAN"] = " ";
                        dr["LOAI_KHANG"] = "10";
                        dr["DCHI_TTOAN"] = strDCHI_TTOAN;
                        dr["LOAI_CTO"] = " ";
                        dr["NGAY_KDINH"] = DateTime.Now;
                        dr["CAN_CU"] = " ";
                        dr["DDIEN_MUA2"] = " ";
                        dr["CVU_MUA2"] = " ";
                        dr["HS_COSFI"] = "";
                        dr["KCOSFI"] = "";

                        dr["SO_BB_KDINH"] = " ";
                        dr["SO_BB_KTRA"] = " ";
                        dr["NGAY_KTRA"] = Convert.ToDateTime("01/01/1000");
                        dr["THANG_TT"] = 0;
                        dr["NAM_TT"] = 0;
                        dr["SO_BB_TTHUAN"] = " ";
                        dr["NGAY_TTHUAN"] = Convert.ToDateTime("01/01/1000");
                        dr["LOAI_SUCO"] = 0;
                        
                        break;
                    case "btnThemMoi":                        
                        break;
                }
                dsNPC_TRTH_KHANG_Entity.Tables["NPC_TRTH_KHANG"].Rows.Add(dr);
                dsNPC_TRTH_KHANG_Entity.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void setEntity_CHISO(string strBtnClick)
        {
            try
            {
                dsNPC_TRTH_CHISO_Entity.Tables["NPC_TRTH_CHISO"].Clear();
                DataRow dr = dsNPC_TRTH_CHISO_Entity.Tables["NPC_TRTH_CHISO"].NewRow();
                switch (strBtnClick)
                {
                    case "btnGhi":                        
                        dr["ID_CHISO"] = ID_CHISO;
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["ID_TRTH"] = txtMa_TT.Text.ToString();
                        dr["CHISO_CU"] = CHISO_CU;
                        dr["CHISO_MOI"] = CHISO_MOI;
                        dr["SAN_LUONG"] = sanluongKy;
                        dr["NGAY_DKY"] = dtNgayDKY;
                        dr["GIO_DKY"] = 0;
                        dr["PHUT_DKY"] = 0;
                        dr["NGAY_CKY"] = dtNgayCKY;
                        dr["GIO_CKY"] = 0;
                        dr["PHUT_CKY"] = 0;
                        dr["HSN"] = txthsn.Text.Trim();
                        dr["BCS"] = "KT";
                        dr["SO_CTO"] = txtSocto.Text.Trim();
                        dr["MA_CTO"] = txtMacto.Text.Trim();
                        dr["KY"] = Ky;
                        dr["LOAI_CHISO"] = "";
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;                        
                        
                        break;

                    case "btnXoa":
                        dr["ID_CHISO"] = ID_CHISO;
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["ID_TRTH"] = txtMa_TT.Text.ToString();
                        dr["CHISO_CU"] = 0;
                        dr["CHISO_MOI"] = 0;
                        dr["SAN_LUONG"] = 0;
                        dr["NGAY_DKY"] = null;
                        dr["GIO_DKY"] = 0;
                        dr["PHUT_DKY"] = 0;
                        dr["NGAY_CKY"] = null;
                        dr["GIO_CKY"] = 0;
                        dr["PHUT_CKY"] = 0;
                        dr["HSN"] = null;
                        dr["BCS"] = "KT";
                        dr["SO_CTO"] = "1";
                        dr["MA_CTO"] = "1";
                        dr["KY"] = null;
                        dr["LOAI_CHISO"] = "";
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;

                        break;
                    case "btnTimKiem":
                        
                        break;
                    case "btnThemMoi":
                        
                        break;
                }
                dsNPC_TRTH_CHISO_Entity.Tables["NPC_TRTH_CHISO"].Rows.Add(dr);
                dsNPC_TRTH_CHISO_Entity.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void setEntity_DDO(string strBtnClick)
        {
            try
            {
                dsNPC_TRTH_DDO_Entity.Tables["NPC_TRTH_DDO"].Clear();
                DataRow dr = dsNPC_TRTH_DDO_Entity.Tables["NPC_TRTH_DDO"].NewRow();
                switch (strBtnClick)
                {
                    case "btnGhi":
                        dr["ID_TRTH"] = txtMa_TT.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["MA_DDO"] = strMa_ddo;
                        dr["SO_CTO"] = txtSocto.Text.Trim();
                        dr["MA_CTO"] = txtMacto.Text.Trim();

                        if (ckbTutinh.IsChecked == false && ckbThoaihoan.IsChecked == false) // thong thuong
                        {
                            if (ckbKhongdoc.IsChecked == true)
                            {
                                if (rdbSinhhoat.IsChecked == true)
                                {
                                    dr["MA_LDO"] = "C10";
                                }
                                else
                                {
                                    dr["MA_LDO"] = "C20";
                                }
                            }
                            else
                            {
                                if (rdbSinhhoat.IsChecked == true)
                                {
                                    dr["MA_LDO"] = "C11";
                                }
                                else
                                {
                                    dr["MA_LDO"] = "C21";
                                }
                            }

                            dr["BCS"] = "KT";
                            dr["TG_CANCU"] = TongsongaycacKy;
                            dr["TG_TRTH"] = SongayTT;
                            dr["SL_CANCU"] = TongsanluongcacKy;
                            dr["SL_TRTHU"] = SanluongTruythu;
                            dr["SL_THAO"] = SanluongDocduoc;
                            dr["NGAYTRTH_TU"] = dtpGhigannhat.SelectedDate.Value.Date.AddDays(1);
                            dr["GIOTRHU_TU"] = 0;
                            dr["PHUTTRHU_TU"] = 0;
                            dr["NGAYTRTH_DEN"] = dtpDungCapDien.SelectedDate.Value;
                            dr["GIOTRHU_DEN"] = 0;
                            dr["PHUTTRHU_DEN"] = 0;
                            dr["NGUOI_TAO"] = strTenDNHap;
                            dr["NGAY_TAO"] = DateTime.Now;
                            dr["TG_MDIEN_CANCU"] = Convert.ToDouble(txtSogiomatdiencacKy.Text.Trim().ToString());
                            dr["TG_MDIEN_TRTHU"] = Convert.ToDouble(txtSogiomatdienTT.Text.Trim().ToString());
                            dr["CHUOI_GIA"] = strChuoi_gia;
                            dr["THANH_TIEN"] = Thanhtien;
                            dr["THANH_TIEN_TRU_SLTHAO"] = Thanhtien;
                            dr["CHUOI_TINHTIEN"] = strChuoi_tinhtien;

                        }
                        else
                            if (ckbTutinh.IsChecked == true && ckbThoaihoan.IsChecked == false) // tu tinh
                            {
                                if (rdbSinhhoat.IsChecked == true)
                                {
                                    dr["MA_LDO"] = "C31";
                                }
                                else
                                {
                                    dr["MA_LDO"] = "C32";
                                }

                                dr["BCS"] = "KT";
                                dr["TG_CANCU"] = 0;
                                dr["TG_TRTH"] = 0;
                                dr["SL_CANCU"] = 0;
                                dr["SL_TRTHU"] = Convert.ToDouble(txtSLtt.Text.Trim());
                                dr["SL_THAO"] = 0;
                                dr["NGAYTRTH_TU"] = Convert.ToDateTime("01/01/1000");
                                dr["GIOTRHU_TU"] = 0;
                                dr["PHUTTRHU_TU"] = 0;
                                dr["NGAYTRTH_DEN"] = dtpDungCapDien.SelectedDate.Value;
                                dr["GIOTRHU_DEN"] = 0;
                                dr["PHUTTRHU_DEN"] = 0;
                                dr["NGUOI_TAO"] = strTenDNHap;
                                dr["NGAY_TAO"] = DateTime.Now;
                                dr["TG_MDIEN_CANCU"] = 0;
                                dr["TG_MDIEN_TRTHU"] = 0;
                                dr["CHUOI_GIA"] = " ";
                                dr["THANH_TIEN"] = Convert.ToDouble(txtTientt.Text.Trim());
                                dr["THANH_TIEN_TRU_SLTHAO"] = Convert.ToDouble(txtTientt.Text.Trim());
                                dr["CHUOI_TINHTIEN"] = "";
                            }
                            else
                            {
                                //thoai hoan
                                dr["MA_LDO"] = "CTH";

                                dr["BCS"] = "KT";
                                dr["TG_CANCU"] = 0;
                                dr["TG_TRTH"] = 0;
                                dr["SL_CANCU"] = 0;
                                dr["SL_TRTHU"] = 0;
                                dr["SL_THAO"] = 0;
                                dr["NGAYTRTH_TU"] = null;
                                dr["GIOTRHU_TU"] = 0;
                                dr["PHUTTRHU_TU"] = 0;
                                dr["NGAYTRTH_DEN"] = dtpDungCapDien.SelectedDate.Value.Date;
                                dr["GIOTRHU_DEN"] = 0;
                                dr["PHUTTRHU_DEN"] = 0;
                                dr["NGUOI_TAO"] = strTenDNHap;
                                dr["NGAY_TAO"] = DateTime.Now;
                                dr["TG_MDIEN_CANCU"] = 0;
                                dr["TG_MDIEN_TRTHU"] = 0;
                                dr["CHUOI_GIA"] = " ";
                                dr["THANH_TIEN"] = Convert.ToDouble(txtTienTH.Text.Trim()) * Convert.ToDouble(-1);
                                dr["THANH_TIEN_TRU_SLTHAO"] = Convert.ToDouble(txtTienTH.Text.Trim()) * Convert.ToDouble(-1);
                                dr["CHUOI_TINHTIEN"] = "";
                            }

                        break;

                    case "btnXoa":
                        dr["ID_TRTH"] = txtMa_TT.Text.ToString();
                        dr["MA_DVIQLY"] = strMa_dviqly;
                        dr["MA_DDO"] = strMa_ddo;
                        dr["SO_CTO"] = "1";
                        dr["MA_CTO"] = "1";
                        dr["MA_LDO"] = "1";
                        dr["BCS"] = "KT";
                        dr["TG_CANCU"] = TongsongaycacKy;
                        dr["TG_TRTH"] = SongayTT;
                        dr["SL_CANCU"] = TongsanluongcacKy;
                        dr["SL_TRTHU"] = SanluongTruythu;
                        dr["SL_THAO"] = SanluongDocduoc;
                        dr["NGAYTRTH_TU"] = DateTime.Now;
                        dr["GIOTRHU_TU"] = 0;
                        dr["PHUTTRHU_TU"] = 0;
                        dr["NGAYTRTH_DEN"] = DateTime.Now;
                        dr["GIOTRHU_DEN"] = 0;
                        dr["PHUTTRHU_DEN"] = 0;
                        dr["NGUOI_TAO"] = strTenDNHap;
                        dr["NGAY_TAO"] = DateTime.Now;
                        dr["TG_MDIEN_CANCU"] = 0;
                        dr["TG_MDIEN_TRTHU"] = 0;
                        dr["CHUOI_GIA"] = strChuoi_gia;
                        dr["THANH_TIEN"] = Thanhtien;
                        dr["THANH_TIEN_TRU_SLTHAO"] = Thanhtien;
                        dr["CHUOI_TINHTIEN"] = " ";

                        break;
                    case "btnTimKiem":

                        break;
                    case "btnThemMoi":

                        break;
                }
                dsNPC_TRTH_DDO_Entity.Tables["NPC_TRTH_DDO"].Rows.Add(dr);
                dsNPC_TRTH_DDO_Entity.AcceptChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        public void Tinh_truythu()
        {
            try
            {
                SanluongTB = 0;
                TongsongaycacKy = 0;
                TongsanluongcacKy = 0;
                SanluongDocduoc = 0;
                SongayTT = 0;
                SanluongFullKyTT = 0;

                intSongayKy1 = 0;
                intSongayKy2 = 0;
                intSongayKy3 = 0;
                sanluongKy1 = 0;
                sanluongKy2 = 0;
                sanluongKy3 = 0;
                Thanhtien = 0;
                ThanhtienTRuSLthao = 0;
                strChuoi_tinhtien = "";


                #region Ky
                if (txtKy1.Text.Trim().ToString() != string.Empty)
                {
                    sanluongKy1 = double.Parse(txtKy1.Text.Trim().ToString());
                }

                if (dtpTungay1.SelectedDate.HasValue && dtpDenngay1.SelectedDate.HasValue)
                {
                    TimeSpan ts = dtpDenngay1.SelectedDate.Value.Date - dtpTungay1.SelectedDate.Value.Date;
                    intSongayKy1 = ts.Days +1;
                }

                if (txtKy2.Text.Trim().ToString() != string.Empty)
                {
                    sanluongKy2 = double.Parse(txtKy2.Text.Trim().ToString());
                }

                if (dtpTungay2.SelectedDate.HasValue && dtpDenngay2.SelectedDate.HasValue)
                {
                    TimeSpan ts = dtpDenngay2.SelectedDate.Value.Date - dtpTungay2.SelectedDate.Value.Date;
                    intSongayKy2 = ts.Days + 1;
                }

                if (txtKy3.Text.Trim().ToString() != string.Empty)
                {
                    sanluongKy3 = double.Parse(txtKy3.Text.Trim().ToString());
                }

                if (dtpTungay3.SelectedDate.HasValue && dtpDenngay3.SelectedDate.HasValue)
                {
                    TimeSpan ts = dtpDenngay3.SelectedDate.Value.Date - dtpTungay3.SelectedDate.Value.Date;
                    intSongayKy3 = ts.Days + 1;
                }
                #endregion

                #region San luong truy thu
                sogiomatdienTT = double.Parse(txtSogiomatdienTT.Text.Trim().ToString());
                sogiomatdienKy = double.Parse(txtSogiomatdiencacKy.Text.Trim().ToString());
                TongsongaycacKy = intSongayKy1 + intSongayKy2 + intSongayKy3 - (sogiomatdienKy/24); // tru di tgian mat dien
                TongsanluongcacKy = sanluongKy1 + sanluongKy2 + sanluongKy3;

                //sanluong trung binh ngay
                if (TongsongaycacKy > 0)
                {
                    SanluongTB = Math.Round( TongsanluongcacKy / TongsongaycacKy,2);
                }
                else
                {
                    MessageBox.Show("Không Tổng số ngày của các kỳ <=0 không tính được truy thu !");
                    return;
                }

                // Đọc được chỉ số công tơ
                if (checkDocchiso == true)
                {
                    Chisogannhat = double.Parse(txtchiso_gannhat.Text.Trim().ToString());
                    Chisothao = double.Parse(txtChisothao.Text.Trim().ToString());
                    SanluongDocduoc = (Chisothao - Chisogannhat)*hsn;
                    TimeSpan ts = dtpDungCapDien.SelectedDate.Value.Date - dtpGhigannhat.SelectedDate.Value.Date.AddDays(1);
                    SongayTT = Math.Round(ts.Days + 1 - (sogiomatdienTT / 24),2); // tru di tgian mat dien
                    SanluongFullKyTT = Math.Round(SanluongTB * SongayTT,0);
                    SanluongTruythu = Convert.ToDouble(Convert.ToInt64(SanluongFullKyTT - SanluongDocduoc));
                }
                else
                {
                    Chisogannhat = Int64.Parse(txtchiso_gannhat.Text.Trim().ToString());
                    TimeSpan ts = dtpDungCapDien.SelectedDate.Value.Date - dtpGhigannhat.SelectedDate.Value.Date.AddDays(1);
                    SongayTT = ts.Days + 1 - (sogiomatdienTT / 24); // tru di tgian mat dien
                    SanluongTruythu = Math.Round(SanluongTB * SongayTT,0);
                }
                #endregion

                #region======== Tinh tien =========
                
                strChuoi_gia = GlobalServices.Service_Truythu.get_chuoigia(strMa_dviqly, strMa_ddo);

                if (strLoai_khang == "10") // có giá bậc thang chỉ tính sản lượng
                {
                    #region -- SHBT

                    DataSet dsApgia = new DataSet();

                    dsApgia = GlobalServices.Service_Truythu.GetGia_By_MaDDoBCS(strMa_dviqly, strMa_ddo);

                    if (dsApgia != null && dsApgia.Tables[0].Rows.Count > 0)
                    {
                        int Phantram = 0;
                        int kWh = 0;
                        double Sluongconlai = SanluongTruythu;
                        double SanluongDatinhtien = 0; // dùng lưu phần sản lượng đã tính tiền trong trường hợp định mức là %

                        for (int i = 0; i < dsApgia.Tables[0].Rows.Count; i++)
                        {
                            if (dsApgia.Tables[0].Rows[i]["LOAI_DMUC"].ToString().Trim() == "%")
                            {
                                if (dsApgia.Tables[0].Rows[i]["MA_NHOMNN"].ToString().Trim() == "SHBT")
                                {
                                    Chia_SanluongSHBT_theoKy(Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01, 0));
                                    SanluongDatinhtien += Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01, 0);
                                    Phantram += Convert.ToInt32(dsApgia.Tables[0].Rows[i]["DINH_MUC"]);
                                }
                                else
                                {
                                    Thanhtien += Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01, 0) * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                    SanluongDatinhtien += Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01, 0);
                                    Phantram += Convert.ToInt32(dsApgia.Tables[0].Rows[i]["DINH_MUC"]);
                                    strChuoi_tinhtien += " + " + Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01, 0).ToString("#########") + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                }
                            }
                            else
                                if (dsApgia.Tables[0].Rows[i]["LOAI_DMUC"].ToString().Trim() != "%" && dsApgia.Tables[0].Rows[i]["LOAI_DMUC"].ToString().Trim() != string.Empty)
                                {
                                    if (dsApgia.Tables[0].Rows[i]["MA_NHOMNN"].ToString().Trim() == "SHBT")
                                    {
                                        if (Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) <= Sluongconlai)
                                        {
                                            Chia_SanluongSHBT_theoKy(Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]));
                                            Sluongconlai -= Convert.ToInt32(dsApgia.Tables[0].Rows[i]["DINH_MUC"]);                                            
                                        }
                                        else
                                        {
                                            Chia_SanluongSHBT_theoKy(Sluongconlai);
                                            Sluongconlai = 0;
                                        }
                                    }
                                    else
                                    {
                                        if (Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) <= Sluongconlai)
                                        {
                                            Thanhtien += Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                            Sluongconlai -= Convert.ToInt32(dsApgia.Tables[0].Rows[i]["DINH_MUC"]);
                                            strChuoi_tinhtien += " + " + dsApgia.Tables[0].Rows[i]["DINH_MUC"].ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                        }
                                        else
                                        {
                                            Thanhtien += Sluongconlai * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                            Sluongconlai = 0;
                                            strChuoi_tinhtien += " + " + Sluongconlai.ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                        }
                                    }
                                }
                                else
                                    if (dsApgia.Tables[0].Rows[i]["DINH_MUC"].ToString().Trim().ToUpper() == "C")
                                    {
                                        if (dsApgia.Tables[0].Rows[i]["MA_NHOMNN"].ToString().Trim() == "SHBT")
                                        {
                                            if (Phantram > 0)
                                            {
                                                Chia_SanluongSHBT_theoKy(SanluongTruythu - SanluongDatinhtien);
                                            }
                                            else
                                                if (Sluongconlai > 0)
                                                {
                                                    Chia_SanluongSHBT_theoKy(Sluongconlai);
                                                }
                                        }
                                        else
                                        {
                                            if (Phantram > 0)
                                            {
                                                Thanhtien += (SanluongTruythu - SanluongDatinhtien) * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                                strChuoi_tinhtien += " + " + (SanluongTruythu - SanluongDatinhtien).ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                            }
                                            else
                                                if (Sluongconlai > 0)
                                                {
                                                    Thanhtien += Sluongconlai * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                                    strChuoi_tinhtien += " + " + Sluongconlai.ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                                }
                                        }
                                    }
                        }
                        strChuoi_tinhtien = strChuoi_tinhtien.Substring(3, strChuoi_tinhtien.Length - 3);
                    }
                    #endregion

                    #region
                    /*
                    DataSet dsApgia = new DataSet();
                    DataSet dsTemp = new DataSet();
                    //dsTemp = GlobalServices.Service_Truythu.Get_Apgia_SHBT(strMa_dviqly, strMa_ddo);
                    dsTemp = cls.Get_Apgia_SHBT(strMa_dviqly, strMa_ddo);
                    dsApgia = GlobalServices.Service_Truythu.GetGia_By_MaDDoBCS(strMa_dviqly, strMa_ddo);
                    if (dsTemp != null && dsTemp.Tables[0].Rows.Count > 0)
                    {
                        if (dsTemp.Tables[0].TableName == "BAC_THANG")
                        {
                            int Dongia = 0;
                            int Dinhmuc = 0;
                            double SanluongConlai = 0;
                            SanluongConlai = SanluongTruythu;

                            for (int i = 0; i < dsTemp.Tables[0].Rows.Count; i++)
                            {
                                //DON_GIA, DINH_MUC
                                Dongia = Convert.ToInt32(dsTemp.Tables[0].Rows[i]["DON_GIA"]);
                                Dinhmuc = Convert.ToInt32(dsTemp.Tables[0].Rows[i]["DINH_MUC"]);

                                if (SanluongConlai >= Dinhmuc)
                                {
                                    Thanhtien += Dinhmuc * Dongia;
                                    SanluongConlai = SanluongConlai - Dinhmuc;
                                }
                                else
                                {
                                    Thanhtien += SanluongConlai * Dongia;
                                    break;
                                }

                            }
                        }
                        else
                        {
 
                        }
                    
                    }
                    else
                    {
                        MessageBox.Show("Không lấy được Bậc thang !");
                        return;
                    }
                     */
                    
                    #endregion
                }
                else
                {
                    DataSet dsApgia = new DataSet();
                    
                    dsApgia = GlobalServices.Service_Truythu.GetGia_By_MaDDoBCS(strMa_dviqly, strMa_ddo);

                    if (dsApgia != null && dsApgia.Tables[0].Rows.Count > 0)
                    {
                        int Phantram = 0;
                        int kWh = 0;
                        double Sluongconlai = SanluongTruythu;
                        double SanluongDatinhtien = 0; // dùng lưu phần sản lượng đã tính tiền trong trường hợp định mức là %

                        for (int i = 0; i < dsApgia.Tables[0].Rows.Count; i++)
                        {
                            if (dsApgia.Tables[0].Rows[i]["LOAI_DMUC"].ToString().Trim() == "%")
                            {
                                Thanhtien += Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01,0) * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                SanluongDatinhtien += Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01,0);
                                Phantram += Convert.ToInt32(dsApgia.Tables[0].Rows[i]["DINH_MUC"]);
                                strChuoi_tinhtien += " + " + Math.Round(SanluongTruythu * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * 0.01, 0).ToString("#########") + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                            }
                            else
                                if (dsApgia.Tables[0].Rows[i]["LOAI_DMUC"].ToString().Trim() != "%" && dsApgia.Tables[0].Rows[i]["LOAI_DMUC"].ToString().Trim() != string.Empty)
                                {
                                    if (Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) <= Sluongconlai)
                                    {
                                        Thanhtien += Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DINH_MUC"]) * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                        Sluongconlai -= Convert.ToInt32(dsApgia.Tables[0].Rows[i]["DINH_MUC"]);
                                        strChuoi_tinhtien += " + " + dsApgia.Tables[0].Rows[i]["DINH_MUC"].ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                    }
                                    else
                                    {
                                        Thanhtien += Sluongconlai * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                        Sluongconlai = 0;
                                        strChuoi_tinhtien += " + " + Sluongconlai.ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                    }
                                }
                                else
                                    if (dsApgia.Tables[0].Rows[i]["DINH_MUC"].ToString().Trim().ToUpper() == "C")
                                    {
                                        if (Phantram > 0)
                                        {
                                            Thanhtien += (SanluongTruythu - SanluongDatinhtien) * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                            strChuoi_tinhtien += " + " + (SanluongTruythu - SanluongDatinhtien).ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                        }
                                        else
                                            if (Sluongconlai > 0)
                                            {
                                                Thanhtien += Sluongconlai * Convert.ToDouble(dsApgia.Tables[0].Rows[i]["DON_GIA"]);
                                                strChuoi_tinhtien += " + " + Sluongconlai.ToString() + "x" + dsApgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                            }
                                    }
                        }
                        strChuoi_tinhtien = strChuoi_tinhtien.Substring(3, strChuoi_tinhtien.Length - 3);
                    }
                }

                #endregion

                checkTinhTT = true;

            }
            catch (Exception ex)
            {
                checkTinhTT = false;
                MessageBox.Show("Không tính được truy thu " + ex.ToString());
            }
        }

        public void Chia_SanluongSHBT_theoKy(double slSHBT)
        {
            try
            {
                DataSet dsLichgcs = GlobalServices.Service_Truythu.Get_ky_GCS(strMa_dviqly, strMa_ddo);
                if (dsLichgcs == null || dsLichgcs.Tables[0].Rows.Count < 1)
                {
                    MessageBox.Show("Không lấy được lịch ghi chỉ số của điểm đo !");
                    return;
                }

                int intNgayGCS = Convert.ToInt32(dsLichgcs.Tables[0].Rows[0]["NGAY_GHI"]);
                int intNgayGhigannhat = dtpGhigannhat.SelectedDate.Value.Day;

                if (intNgayGhigannhat == intNgayGCS)
                {
                    #region   // ngày ghi gần nhất trùng ngày ghi chỉ số

                    DateTime dtimeBG1 = dtpGhigannhat.SelectedDate.Value.AddMonths(1);
                    TimeSpan ts = dtpDungCapDien.SelectedDate.Value.Date - dtimeBG1;// kiểm tra khoảng truy thu có lớn hơn 1 kỳ

                    if (ts.Days <= 0)
                    {
                        Tinh_tien_SHBT(slSHBT);
                    }
                    else
                    {
                        double slBQngay = 0;
                        double slKy = 0;
                        double slDatinh = 0;
                        TimeSpan tsKy;

                        TimeSpan tsSum = dtpDungCapDien.SelectedDate.Value.Date - dtpGhigannhat.SelectedDate.Value.Date; // tổng số ngày truy thu
                        slBQngay = slSHBT / tsSum.Days; // sản lượng truy thu bình quân ngày

                        DateTime dtimeGCS = dtpGhigannhat.SelectedDate.Value.Date;
                        DateTime dtimeGCSNext = dtpGhigannhat.SelectedDate.Value.Date.AddMonths(1);

                        do
                        {
                            tsKy = dtimeGCSNext - dtimeGCS;
                            slKy = Math.Round(slBQngay * tsKy.Days, 0);
                            slDatinh += slKy;
                            Tinh_tien_SHBT(slKy);
                            dtimeGCS = dtimeGCSNext;
                            dtimeGCSNext = dtimeGCSNext.AddMonths(1);
                        }
                        while (dtimeGCSNext <= dtpDungCapDien.SelectedDate.Value.Date);

                        // tính phần cuối không tròn kỳ
                        Tinh_tien_SHBT(slSHBT - slDatinh);

                    }
                    #endregion
                }
                else
                {
                    #region --- ngày ghi gần nhất ko trùng ngày ghi chỉ số: treo tháo...

                    DateTime dtimeGCS;
                    DateTime dtimeGCSNext;
                    //DateTime dtimeBG1 = dtpGhigannhat.SelectedDate.Value.AddMonths(1);

                    //  tìm ngày ghi chỉ số tiếp theo sau ngày ghi gần nhất
                    if (intNgayGCS < intNgayGhigannhat) 
                    {
                        dtimeGCSNext = Convert.ToDateTime(dtpGhigannhat.SelectedDate.Value.AddMonths(1).Month.ToString() + "/" + intNgayGCS.ToString() + "/" + dtpGhigannhat.SelectedDate.Value.AddMonths(1).Year.ToString());
                    }
                    else
                    {
                        dtimeGCSNext = Convert.ToDateTime(dtpGhigannhat.SelectedDate.Value.Month.ToString() + "/" + intNgayGCS.ToString() + "/" + dtpGhigannhat.SelectedDate.Value.Year.ToString());
                    }

                    TimeSpan ts = dtpDungCapDien.SelectedDate.Value.Date - dtimeGCSNext;// kiểm tra khoảng truy thu có nằm gọn trong 1 chu kỳ

                    if (ts.Days <= 0) // khoảng truy thu nằm trong 1 chu kỳ GCS
                    {
                        Tinh_tien_SHBT(slSHBT);
                    }
                    else
                    {   // khoảng truy thu nằm ở nhiều chu kỳ GCS

                        double slBQngay = 0;
                        double slKy = 0;
                        double slDatinh = 0;
                        TimeSpan tsKy;

                        TimeSpan tsSum = dtpDungCapDien.SelectedDate.Value.Date - dtpGhigannhat.SelectedDate.Value.Date; // tổng số ngày truy thu
                        slBQngay = slSHBT / tsSum.Days; // sản lượng truy thu bình quân ngày

                        dtimeGCS = dtpGhigannhat.SelectedDate.Value.Date;
                        //dtimeGCSNext = dtpGhigannhat.SelectedDate.Value.Date.AddMonths(1);

                        do
                        {
                            tsKy = dtimeGCSNext - dtimeGCS;
                            slKy = Math.Round(slBQngay * tsKy.Days, 0);
                            slDatinh += slKy;
                            Tinh_tien_SHBT(slKy);
                            dtimeGCS = dtimeGCSNext;
                            dtimeGCSNext = dtimeGCSNext.AddMonths(1);
                        }
                        while (dtimeGCSNext <= dtpDungCapDien.SelectedDate.Value.Date);

                        // tính phần cuối không tròn kỳ
                        Tinh_tien_SHBT(slSHBT - slDatinh);

                    }

                    #endregion

                }

 
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        public void Tinh_tien_SHBT(double iSanluong)
        {
            try
            {
                DataSet dsgia = new DataSet();
                double slconlai = 0;
                //double thanhtienSHBT = 0;
                //string strChuoi_tinhtienSHBT = "";

                dsgia = GlobalServices.Service_Truythu.Get_Apgia_SHBT(strMa_dviqly, strMa_ddo);
                if (dsgia == null || dsgia.Tables[0].Rows.Count < 1)
                {
                    MessageBox.Show("Không lấy được bậc thang !");
                    return;
                }

                slconlai = iSanluong;
                for (int i = 0; i < dsgia.Tables[0].Rows.Count; i++)
                {
                    if (Convert.ToInt64(dsgia.Tables[0].Rows[i]["DINH_MUC"]) > 0)
                    {
                        if (slconlai >= Convert.ToInt64(dsgia.Tables[0].Rows[i]["DINH_MUC"]))
                        {
                            Thanhtien += Convert.ToInt64(dsgia.Tables[0].Rows[i]["DINH_MUC"]) * Convert.ToDouble(dsgia.Tables[0].Rows[i]["DON_GIA"]);
                            slconlai = slconlai - Convert.ToInt64(dsgia.Tables[0].Rows[i]["DINH_MUC"]);
                            strChuoi_tinhtien += " + " + dsgia.Tables[0].Rows[i]["DINH_MUC"].ToString() + "x" + dsgia.Tables[0].Rows[i]["DON_GIA"].ToString();                            
                        }
                        else
                        {
                            if (slconlai > 0)
                            {
                                Thanhtien += slconlai * Convert.ToDouble(dsgia.Tables[0].Rows[i]["DON_GIA"]);
                                strChuoi_tinhtien += " + " + slconlai.ToString() + "x" + dsgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                                slconlai = 0;                                
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (slconlai > 0)
                        {
                            Thanhtien += slconlai * Convert.ToDouble(dsgia.Tables[0].Rows[i]["DON_GIA"]);
                            strChuoi_tinhtien += " + " + slconlai.ToString() + "x" + dsgia.Tables[0].Rows[i]["DON_GIA"].ToString();
                            slconlai = 0;                            
                        }
                        else
                        {
                            break;
                        }
                    }
                }
 
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        //Lay thang nam hoa don trong he thong
        private void GET_THANGNAM_HD()
        {
            try
            {
                DataTable dtThangNamHD = Utility.getThangNamCurrent("HD");
                if (dtThangNamHD != null && dtThangNamHD.Rows.Count > 0)
                {
                    i16ThangHD = Convert.ToInt16(dtThangNamHD.Rows[0]["THANG"]);
                    i16NamHD = Convert.ToInt16(dtThangNamHD.Rows[0]["NAM"]);
                }
            }
            catch
            {
                i16ThangHD = Convert.ToInt16(DateTime.Now.Month);
                i16NamHD = Convert.ToInt16(DateTime.Now.Year);
            }
        }

        private void dgrDSach_Truythu_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void btnThemMoi_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Del_cache();

                this.Cursor = null;
                strBtnClick = "btnThemMoi";
                strSuaThemmoi = "THEM";

                btnThemMoi.IsEnabled = false;
                btnSua.IsEnabled = false;
                btnHuy.IsEnabled = true;
                btnGhi.IsEnabled = false;
                btnIn.IsEnabled = false;
                btnXoa.IsEnabled = false;
                btnLayCancu.IsEnabled = true;

                txtMa_ddo_I.IsEnabled = true; 
                txtMa_ddo_I.IsReadOnly = false;
                btnLayDuLieu_I.IsEnabled = true;
                tabTruythu.IsSelected = true;
                tabsluongCancu.IsSelected = true;

                cboLOAI_SUCO.SelectedIndex = 0;
                ckbThoaihoan.IsChecked = false;
                ckbTutinh.IsChecked = false;
                ckbKhongdoc.IsChecked = false;
                ckbTunhap.IsChecked = false;

                Items_text(string.Empty);
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
                
        }
       
        private void btnLayDuLieu_I_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                dsKH = new DataSet();
                dsBD = new DataSet();
                dsCancu = new DataSet();

                if (txtMa_ddo_I.Text.Trim().ToString() != string.Empty)
                {
                    strMa_ddo = txtMa_ddo_I.Text.Trim().ToString();
                    dsKH = GlobalServices.Service_Truythu.Get_thongtin_khach_hang(strMa_dviqly, strMa_ddo);
                   
                    dsBD = GlobalServices.Service_Truythu.Get_thongtin_Ban_dien(strMa_dviqly);
                    
                    //dsCancu = GlobalServices.Service_Truythu.Get_Sanluong_Cancu_Co(strMa_ddo);
                    //strLoai_khang = GlobalServices.Service_Truythu.Get_loai_khang(strMa_dviqly, strMa_ddo);
                    strLoai_khang = GlobalServices.Service_Truythu.Get_loai_khang(strMa_dviqly, strMa_ddo);

                    if (strLoai_khang == "20")
                    {
                        MessageBox.Show("Điểm đo này không treo công tơ cơ !");
                        txtMa_ddo_I.Focus();
                        return;
                    }

                    // Thông tin khách hàng
                    if (dsKH != null && dsKH.Tables[0].Rows.Count > 0)
                    {
                        txtTen_khang.Text = dsKH.Tables[0].Rows[0]["TEN_KHANG"].ToString().Trim();
                        txtDia_chi.Text = dsKH.Tables[0].Rows[0]["DIA_CHI"].ToString().Trim();
                        txtDai_dien_mua.Text = dsKH.Tables[0].Rows[0]["TEN_KHANG"].ToString().Trim();
                        strMa_khang = dsKH.Tables[0].Rows[0]["MA_KHANG"].ToString();
                        strDCHI_TTOAN = dsKH.Tables[0].Rows[0]["DCHI_TTOAN"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Không lấy được thông tin khách hàng !");
                        txtMa_ddo_I.Focus();
                        return;
                    }
                    
                    // Loai diem do
                    if (strLoai_khang == "10")
                    {
                        rdbSinhhoat.IsChecked = true;
                    }
                    else
                    {
                        rdbNgoaiSH.IsChecked = true;
                    }

                    // Thông tin bên bán điện
                    if (dsBD != null && dsBD.Tables[0].Rows.Count > 0)
                    {
                        txtHoten1.Text = dsBD.Tables[0].Rows[0]["DAI_DIEN"].ToString();
                        txtChucvu1.Text = dsBD.Tables[0].Rows[0]["CHUC_VU"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Không lấy được thông tin đại diện bên bán điện !");
                    }

                    Enable_Items(true);


                    #region //Thông tin sản lượng các kỳ liền kề
                    /*
                    if (dsCancu != null && dsCancu.Tables[0].Rows.Count > 0)
                    {
                        countKy = dsCancu.Tables[0].Rows.Count;

                        if (countKy >= 3)
                        {
                            txtKy1.Text = dsCancu.Tables[0].Rows[countKy - 1]["SLUONG_END"].ToString();
                            dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                            dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);

                            txtKy2.Text = dsCancu.Tables[0].Rows[countKy - 2]["SLUONG_END"].ToString();
                            dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_DKY"]);
                            dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_CKY"]);

                            txtKy3.Text = dsCancu.Tables[0].Rows[countKy - 3]["SLUONG_END"].ToString();
                            dtpTungay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 3]["NGAY_DKY"]);
                            dtpDenngay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 3]["NGAY_CKY"]);
                        }
                        else
                            if (countKy == 2)
                            {
                                txtKy1.Text = dsCancu.Tables[0].Rows[countKy - 1]["SLUONG_END"].ToString();
                                dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                                dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);

                                txtKy2.Text = dsCancu.Tables[0].Rows[countKy - 2]["SLUONG_END"].ToString();
                                dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_DKY"]);
                                dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_CKY"]);
                            }
                            else
                                if (countKy == 1)
                                {
                                    txtKy1.Text = dsCancu.Tables[0].Rows[countKy - 1]["SLUONG_END"].ToString();
                                    dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                                    dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);
                                }

                        if (dsCancu.Tables["CHI_SO"].Rows.Count > 0)
                        {
                            txtchiso_gannhat.Text = dsCancu.Tables["CHI_SO"].Rows[0]["CHISO_MOI"].ToString();
                            dtpGhigannhat.SelectedDate = Convert.ToDateTime(dsCancu.Tables["CHI_SO"].Rows[0]["NGAY_CKY"]);
                            strSo_cto = dsCancu.Tables["CHI_SO"].Rows[0]["SO_CTO"].ToString();
                            strMa_cto = dsCancu.Tables["CHI_SO"].Rows[0]["MA_CTO"].ToString();
                            hsn = Convert.ToInt32(dsCancu.Tables["CHI_SO"].Rows[0]["HS_NHAN"]);
                        }

                        Enable_Items(true);
                        btnLayDuLieu_I.IsEnabled = false;
                        btnGhi.IsEnabled = true;
                        txtMa_ddo_I.IsReadOnly = true;

                    }
                    else
                    {
                        MessageBox.Show("Không có dữ liệu Sản lượng các kỳ liền kề làm căn cứ !");
                        return;
                    }
                    */
                    #endregion


                }
                else
                {
                    MessageBox.Show("Hãy nhập mã điểm đo !");
                    txtMa_ddo_I.Focus();
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnHuy_Click(object sender, RoutedEventArgs e)
        {
            try
            {

                this.Cursor = null;
                btnThemMoi.IsEnabled = true;
                btnSua.IsEnabled = false;
                btnHuy.IsEnabled = false;
                btnGhi.IsEnabled = false;
                btnIn.IsEnabled = false;
                btnLayDuLieu_I.IsEnabled = false;
                btnLayCancu.IsEnabled = false;
                ckbKhongdoc.IsChecked = false;
                ckbTunhap.IsChecked = false;
                ckbTutinh.IsChecked = false;
                ckbThoaihoan.IsChecked = false;
                cboLOAI_SUCO.SelectedIndex = 0;
                tabsluongCancu.IsSelected = true;
                //if (strBtnClick == "btnThemMoi")
                //{
                //    btnXoa.IsEnabled = false;
                //}
                //else
                //    if (strBtnClick == "SUA")
                //    {
                //        btnXoa.IsEnabled = true;
                //    }

                strBtnClick = "";
                strSuaThemmoi = "";

                Del_cache();
                Enable_Items(false);
                Enable_KyCancu(false, 0);
                Items_text(string.Empty);
                CheckIsEnableButtonSuaXoa();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnSua_Click(object sender, RoutedEventArgs e)
        {
            try
            {

                strBtnClick = "SUA";
                strSuaThemmoi = "SUA";

                btnThemMoi.IsEnabled = false;
                btnSua.IsEnabled = false;
                btnHuy.IsEnabled = true;
                btnGhi.IsEnabled = true;
                btnIn.IsEnabled = false;
                btnXoa.IsEnabled = false;
                btnLayCancu.IsEnabled = false;
                btnLayDuLieu_I.IsEnabled = false;
                txtMa_ddo_I.IsReadOnly = true;

                if (ckbKhongdoc.IsChecked == true)
                {
                    txtChisothao.IsEnabled = false;
                }
                else
                {
                    txtChisothao.IsEnabled = true;
                }

                if (ckbTutinh.IsChecked == true)
                {
                    tabTutinh.IsEnabled = true;
                    tabsluongCancu.IsEnabled = false;
                    tabThoaihoan.IsEnabled = false;
                }
                else
                    if (ckbThoaihoan.IsChecked == true)
                    {
                        tabThoaihoan.IsEnabled = true;
                        tabsluongCancu.IsEnabled = false;
                        tabTutinh.IsEnabled = false;
                    }
                    else
                    {
                        tabTutinh.IsEnabled = false;
                        tabsluongCancu.IsEnabled = true;
                        tabThoaihoan.IsEnabled = false;
                    }

                Enable_Items(true);
                Enable_KyCancu(true, countKy);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnGhi_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                
                CHISO_CU = 0;
                CHISO_MOI = 0;                

                this.Cursor = Cursors.Wait;

                bool checkInsert = false;

                if (ckbTutinh.IsChecked == true)
                {
                    #region ktra du lieu tu tinh

                    while (check_Input_Tutinh() == false)
                    {
                        this.Cursor = null;
                        return;
                    }

                    #endregion
                }
                else
                    if (ckbThoaihoan.IsChecked == true)
                    {
                        #region ktra du lieu thoai hoan

                        while (check_Input_Thoaihoan() == false)
                        {
                            this.Cursor = null;
                            return;
                        }

                        #endregion
                    }
                    else
                    {
                        #region ktra du lieu thong thuong

                        // ========= Kiem tra du lieu nhap moi ========
                        while (check_Input_Items() == false)
                        {
                            this.Cursor = null;
                            return;
                        }

                        // ========= Kiem tra du san luong cac ky ========
                        while (check_values_Ky() == false)
                        {
                            this.Cursor = null;
                            return;
                        }

                        // tự nhập, lấy số kỳ khi Thêm mới
                        if (strBtnClick == "btnThemMoi")
                        {
                            if (ckbTunhap.IsChecked == true)
                            {
                                Int32 sok;
                                if (Int32.TryParse(txtSoky.Text.Trim(), out sok))
                                {
                                    countKy = Convert.ToInt32(txtSoky.Text.Trim());
                                    if (countKy < 1 || countKy > 3)
                                    {
                                        MessageBox.Show("Số lượng kỳ căn cứ từ 1 đến 3 !");
                                        txtSoky.Focus();
                                        this.Cursor = null;
                                        return;
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Hãy nhập số kỳ !");
                                    txtSoky.Focus();
                                    return;
                                }
                            }
                        }

                        hsn = Convert.ToInt32(txthsn.Text.Trim());

                        Tinh_truythu();
                        if (checkTinhTT == false) // không tính được truy thu -> stop
                        {
                            this.Cursor = null;
                            return;
                        }

                        #endregion
                    }
                
                /// ======= Thêm mới -> lấy nextSeq ======
                if (strBtnClick == "btnThemMoi")
                {
                    long MaxID = 0;
                    long nextSeqTRTH = 0;

                    if ((txtMa_TT.Text.Trim().ToString() == string.Empty) || (txtMa_TT.Text.Trim().ToString() == "-1"))
                    {
                        //nextSeqTRTH = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRUYTHU(ref strError);
                        MaxID = GlobalServices.Service_Truythu.GetMaxID(strMa_dviqly, "TRUYTHU", ref strError);

                        if (MaxID == -1)
                        {
                            MessageBox.Show("Seq Truy thu: -1 không ghi được dữ liệu");
                            return;
                        }

                        #region ======== ghi dòng NPC_LOG_ID mới =========
                        checkInsert = GlobalServices.Service_Truythu.insert_NPC_LOG_ID(strMa_dviqly, MaxID + 1, "TRUYTHU", strTenDNHap, DateTime.Now, ref strError);
                        if (checkInsert == false)
                        {
                            MessageBox.Show("Không ghi được dữ liệu LOG_ID" + "\n" + strError);                                                      
                            return;
                        }
                        #endregion

                        nextSeqTRTH = MaxID + 1;
                        txtMa_TT.Text = nextSeqTRTH.ToString();
                    }
                }

                

                // dữ liệu khách hàng NPC_TRTH_KHANG
                setEntity_KH("btnGhi");



                // ============== Ghi dữ liệu Thêm mới ===============
                if (strBtnClick == "btnThemMoi")
                {
                    // ghi dữ liệu NPC_TRTH_KHANG
                    //checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_KHANG(dsNPC_TRTH_KHANG_Entity, ref strError);
                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_KHANG(dsNPC_TRTH_KHANG_Entity, ref strError);
                    if (checkInsert == false)
                    {
                        MessageBox.Show(strError);
                        Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                        this.Cursor = null;                        
                        return;
                    }

                    if (ckbTutinh.IsChecked == false && ckbThoaihoan.IsChecked == false) //thong thuong
                    {
                        #region =========  dữ liệu chỉ số NPC_TRTH_CHISO  ==========

                        if (checkInsert == false)
                        {
                            MessageBox.Show("Không ghi được dữ liệu khách hàng" + strError);
                            this.Cursor = null;
                            return;
                        }
                        else
                        {
                            Ky1 = 1;
                            Ky2 = 2;
                            Ky3 = 3;
                            Ky0 = 0;

                            if (countKy == 1)
                            {
                                nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                ID_CHISO = nextSEQChiso;
                                Id_chisoKy1 = nextSEQChiso;
                                dtNgayDKY = dtpTungay1.SelectedDate.Value.Date;
                                dtNgayCKY = dtpDenngay1.SelectedDate.Value.Date;
                                sanluongKy = sanluongKy1;
                                Ky = Ky1;
                                CHISO_CU = 0;
                                CHISO_MOI = 0;

                                setEntity_CHISO("btnGhi");

                                checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                if (checkInsert == false)
                                {
                                    MessageBox.Show(strError);
                                    Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                    this.Cursor = null;
                                    return;
                                }
                            }
                            else
                                if (countKy == 2)
                                {
                                    // ghi du lieu ky 1
                                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                    ID_CHISO = nextSEQChiso;
                                    Id_chisoKy1 = nextSEQChiso;
                                    dtNgayDKY = dtpTungay1.SelectedDate.Value.Date;
                                    dtNgayCKY = dtpDenngay1.SelectedDate.Value.Date;
                                    sanluongKy = sanluongKy1;
                                    Ky = Ky1;
                                    CHISO_CU = 0;
                                    CHISO_MOI = 0;

                                    setEntity_CHISO("btnGhi");

                                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                    if (checkInsert == false)
                                    {
                                        MessageBox.Show(strError);
                                        Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                        this.Cursor = null;
                                        return;
                                    }

                                    if (checkInsert == true)
                                    {
                                        //ghi du lieu ky 2
                                        nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                        ID_CHISO = nextSEQChiso;
                                        Id_chisoKy2 = nextSEQChiso;
                                        dtNgayDKY = dtpTungay2.SelectedDate.Value.Date;
                                        dtNgayCKY = dtpDenngay2.SelectedDate.Value.Date;
                                        sanluongKy = sanluongKy2;
                                        if (countKyTruoc == 2)
                                        {
                                            Ky = Ky2;
                                        }
                                        else
                                        {
                                            Ky = Ky21;
                                        }
                                        CHISO_CU = 0;
                                        CHISO_MOI = 0;

                                        setEntity_CHISO("btnGhi");

                                        checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                        if (checkInsert == false)
                                        {
                                            MessageBox.Show(strError);
                                            Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                            this.Cursor = null;
                                            return;
                                        }

                                        if (checkInsert == false)
                                        {
                                            MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ II " + strError);
                                            this.Cursor = null;
                                            return;
                                        }
                                    }
                                    else
                                    {
                                        MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ I " + strError);
                                        this.Cursor = null;
                                        return;
                                    }
                                }
                                else
                                    if (countKy >= 3)
                                    {
                                        // ghi du lieu ky 1
                                        nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                        ID_CHISO = nextSEQChiso;
                                        Id_chisoKy1 = nextSEQChiso;
                                        dtNgayDKY = dtpTungay1.SelectedDate.Value.Date;
                                        dtNgayCKY = dtpDenngay1.SelectedDate.Value.Date;
                                        sanluongKy = sanluongKy1;
                                        Ky = Ky1;
                                        CHISO_CU = 0;
                                        CHISO_MOI = 0;

                                        setEntity_CHISO("btnGhi");

                                        checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                        if (checkInsert == false)
                                        {
                                            MessageBox.Show(strError);
                                            Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                            this.Cursor = null;
                                            return;
                                        }

                                        if (checkInsert == true)
                                        {
                                            // ghi du lieu ky 2
                                            nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                            ID_CHISO = nextSEQChiso;
                                            Id_chisoKy2 = nextSEQChiso;
                                            dtNgayDKY = dtpTungay2.SelectedDate.Value.Date;
                                            dtNgayCKY = dtpDenngay2.SelectedDate.Value.Date;
                                            sanluongKy = sanluongKy2;
                                            if (countKyTruoc == 1)
                                            {
                                                Ky = Ky21;
                                            }
                                            else
                                            {
                                                Ky = Ky2;
                                            }

                                            CHISO_CU = 0;
                                            CHISO_MOI = 0;

                                            setEntity_CHISO("btnGhi");

                                            checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                            if (checkInsert == false)
                                            {
                                                MessageBox.Show(strError);
                                                Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                                this.Cursor = null;
                                                return;
                                            }

                                            if (checkInsert == true)
                                            {
                                                // ghi du lieu ky 3
                                                nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                                ID_CHISO = nextSEQChiso;
                                                Id_chisoKy3 = nextSEQChiso;
                                                dtNgayDKY = dtpTungay3.SelectedDate.Value.Date;
                                                dtNgayCKY = dtpDenngay3.SelectedDate.Value.Date;
                                                sanluongKy = sanluongKy3;
                                                if (countKyTruoc == 1)
                                                {
                                                    Ky = Ky22;
                                                }
                                                else
                                                    if (countKyTruoc == 2)
                                                    {
                                                        Ky = Ky21;
                                                    }
                                                    else
                                                    {
                                                        Ky = Ky3;
                                                    }
                                                CHISO_CU = 0;
                                                CHISO_MOI = 0;

                                                setEntity_CHISO("btnGhi");

                                                checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                                if (checkInsert == false)
                                                {
                                                    MessageBox.Show(strError);
                                                    Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                                    this.Cursor = null;
                                                    return;
                                                }

                                                if (checkInsert == false)
                                                {
                                                    MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ III " + strError);
                                                    this.Cursor = null;
                                                    return;
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ II " + strError);
                                                this.Cursor = null;
                                                return;
                                            }
                                        }
                                        else
                                        {
                                            MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ I " + strError);
                                            this.Cursor = null;
                                            return;
                                        }
                                    }

                            #region ======== Ghi dòng chỉ số gần nhất, chỉ số tháo => KY = 0

                            nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                            ID_CHISO = nextSEQChiso;
                            Id_chisoKy0 = nextSEQChiso;
                            dtNgayDKY = dtpGhigannhat.SelectedDate.Value.Date.AddDays(1);
                            dtNgayCKY = dtpDungHoatdong.SelectedDate.Value.Date;
                            sanluongKy = SanluongDocduoc;
                            Ky = 0;
                            CHISO_CU = Chisogannhat;
                            CHISO_MOI = Chisothao;

                            setEntity_CHISO("btnGhi");

                            checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                            if (checkInsert == false)
                            {
                                MessageBox.Show(strError);
                                Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                this.Cursor = null;
                                return;
                            }

                            #endregion

                            #region ======== Ghi chỉ số trong trường hợp kỳ gần nhất không tròn kỳ => KY = 10

                            if (dsCancu.Tables.Contains("DDN"))
                            {
                                if (checkInsert == true)
                                {
                                    nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                    ID_CHISO = nextSEQChiso;
                                    Id_chisoKy10 = nextSEQChiso;
                                    dtNgayDKY = Convert.ToDateTime(dsCancu.Tables["DDN"].Rows[0]["NGAY_DKY"]);
                                    dtNgayCKY = Convert.ToDateTime(dsCancu.Tables["DDN"].Rows[0]["NGAY_CKY"]);
                                    sanluongKy = Convert.ToInt32(dsCancu.Tables["DDN"].Rows[0]["SLUONG_END"]);
                                    Ky = 10;
                                    CHISO_CU = 0;
                                    CHISO_MOI = 0;

                                    setEntity_CHISO("btnGhi");

                                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                    if (checkInsert == false)
                                    {
                                        MessageBox.Show(strError);
                                        Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                        this.Cursor = null;
                                        return;
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ 0 " + strError);
                                    this.Cursor = null;
                                    return;
                                }
                            }

                            #endregion
                        }
                        #endregion

                        #region ========= dữ liệu điểm đo NPC_TRTH_DDO  ==========

                        if (checkInsert == true)
                        {
                            setEntity_DDO("btnGhi");

                            checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_DDO(dsNPC_TRTH_DDO_Entity, ref strError);
                            if (checkInsert == false)
                            {
                                MessageBox.Show(strError);
                                Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                this.Cursor = null;
                                return;
                            }

                        }

                        #endregion
                    }
                    else
                        if (ckbTutinh.IsChecked == true) // tu tinh
                        {
                            #region ========= dữ liệu điểm đo NPC_TRTH_DDO  ==========

                            if (checkInsert == true)
                            {
                                setEntity_DDO("btnGhi");

                                checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_DDO(dsNPC_TRTH_DDO_Entity, ref strError);
                                if (checkInsert == false)
                                {
                                    MessageBox.Show(strError);
                                    Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                    this.Cursor = null;
                                    return;
                                }

                            }

                            #endregion
                        }
                        else
                            if (ckbThoaihoan.IsChecked == true) // thoai hoan
                            {
                                #region ==========   dữ liệu chỉ số NPC_TRTH_CHISO ==========

                                nextSEQChiso = GlobalServices.Service_Truythu.GetNextSEQ_NPC_TRTHU_CHISO(ref strError);
                                ID_CHISO = nextSEQChiso;
                                Id_chisoKy0 = nextSEQChiso;
                                dtNgayDKY = dtpTungayCancuTH.SelectedDate.Value.Date;
                                dtNgayCKY = dtpDenngayCancuTH.SelectedDate.Value.Date;
                                sanluongKy = 0;
                                Ky = Convert.ToInt16(txtSokyCancuTH.Text.Trim());
                                CHISO_CU = 0;
                                CHISO_MOI = Convert.ToDouble(txtChisothao.Text.Trim());

                                setEntity_CHISO("btnGhi");

                                checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                                if (checkInsert == false)
                                {
                                    MessageBox.Show(strError);
                                    Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                    this.Cursor = null;
                                    return;
                                }

                                #endregion

                                #region ========= dữ liệu điểm đo NPC_TRTH_DDO  ==========

                                if (checkInsert == true)
                                {
                                    setEntity_DDO("btnGhi");

                                    checkInsert = GlobalServices.Service_Truythu.insert_NPC_TRTH_DDO(dsNPC_TRTH_DDO_Entity, ref strError);
                                    if (checkInsert == false)
                                    {
                                        MessageBox.Show(strError);
                                        Del_Data_Inserted(Convert.ToInt64(txtMa_TT.Text));
                                        this.Cursor = null;
                                        return;
                                    }

                                }

                                #endregion

                            }
                    
                }
                else
                {
                    checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_KHANG(dsNPC_TRTH_KHANG_Entity, ref strError);
                    #region ==== du NPC_TRTH_CHISO kieu moi ====
                    if (checkInsert == false)
                    {
                        MessageBox.Show("Không ghi được dữ liệu khách hàng" + strError);
                        this.Cursor = null;
                        return;
                    }


                    #endregion

                    if (ckbTutinh.IsChecked == false && ckbThoaihoan.IsChecked == false) //thong thuong
                    {
                        #region =========  dữ liệu chỉ số NPC_TRTH_CHISO kieu cu  ==========

                        if (checkInsert == false)
                        {
                            MessageBox.Show("Không ghi được dữ liệu khách hàng" + strError);
                            this.Cursor = null;
                            return;
                        }
                        else
                        {
                            if (countKy == 1)
                            {
                                ID_CHISO = Id_chisoKy1;
                                dtNgayDKY = dtpTungay1.SelectedDate.Value.Date;
                                dtNgayCKY = dtpDenngay1.SelectedDate.Value.Date;
                                sanluongKy = sanluongKy1;
                                Ky = Ky1;

                                setEntity_CHISO("btnGhi");

                                checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);
                            }
                            else
                                if (countKy == 2)
                                {
                                    // ghi du lieu ky 1                                
                                    ID_CHISO = Id_chisoKy1;
                                    dtNgayDKY = dtpTungay1.SelectedDate.Value.Date;
                                    dtNgayCKY = dtpDenngay1.SelectedDate.Value.Date;
                                    sanluongKy = sanluongKy1;
                                    Ky = Ky1;

                                    setEntity_CHISO("btnGhi");

                                    checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);

                                    if (checkInsert == true)
                                    {
                                        //ghi du lieu ky 2
                                        ID_CHISO = Id_chisoKy2;
                                        dtNgayDKY = dtpTungay2.SelectedDate.Value.Date;
                                        dtNgayCKY = dtpDenngay2.SelectedDate.Value.Date;
                                        sanluongKy = sanluongKy2;
                                        Ky = Ky2;

                                        setEntity_CHISO("btnGhi");

                                        checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);

                                        if (checkInsert == false)
                                        {
                                            MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ II " + strError);
                                            this.Cursor = null;
                                            return;
                                        }
                                    }
                                    else
                                    {
                                        MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ I " + strError);
                                        this.Cursor = null;
                                        return;
                                    }
                                }
                                else
                                    if (countKy >= 3)
                                    {
                                        // ghi du lieu ky 1
                                        ID_CHISO = Id_chisoKy1;
                                        dtNgayDKY = dtpTungay1.SelectedDate.Value.Date;
                                        dtNgayCKY = dtpDenngay1.SelectedDate.Value.Date;
                                        sanluongKy = sanluongKy1;
                                        Ky = Ky1;

                                        setEntity_CHISO("btnGhi");

                                        checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);

                                        if (checkInsert == true)
                                        {
                                            // ghi du lieu ky 2
                                            ID_CHISO = Id_chisoKy2;
                                            dtNgayDKY = dtpTungay2.SelectedDate.Value.Date;
                                            dtNgayCKY = dtpDenngay2.SelectedDate.Value.Date;
                                            sanluongKy = sanluongKy2;
                                            Ky = Ky2;

                                            setEntity_CHISO("btnGhi");

                                            checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);

                                            if (checkInsert == true)
                                            {
                                                // ghi du lieu ky 3
                                                ID_CHISO = Id_chisoKy3;
                                                dtNgayDKY = dtpTungay3.SelectedDate.Value.Date;
                                                dtNgayCKY = dtpDenngay3.SelectedDate.Value.Date;
                                                sanluongKy = sanluongKy3;
                                                Ky = Ky3;

                                                setEntity_CHISO("btnGhi");

                                                checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);

                                                if (checkInsert == false)
                                                {
                                                    MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ III " + strError);
                                                    this.Cursor = null;
                                                    return;
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ II " + strError);
                                                this.Cursor = null;
                                                return;
                                            }
                                        }
                                        else
                                        {
                                            MessageBox.Show("Không ghi được dữ liệu sản lượng kỳ I " + strError);
                                            this.Cursor = null;
                                            return;
                                        }
                                    }

                            #region ======== Ghi dòng chỉ số gần nhất, chỉ số tháo => KY = 0

                            ID_CHISO = Id_chisoKy0;
                            dtNgayDKY = dtpGhigannhat.SelectedDate.Value.Date.AddDays(1);
                            dtNgayCKY = dtpDungHoatdong.SelectedDate.Value.Date;
                            sanluongKy = SanluongDocduoc;
                            Ky = 0;
                            CHISO_CU = Chisogannhat;
                            CHISO_MOI = Chisothao;

                            setEntity_CHISO("btnGhi");

                            checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);

                            #endregion

                        }

                        #endregion

                        #region ========= dữ liệu điểm đo NPC_TRTH_DDO  ==========

                        if (checkInsert == true)
                        {
                            setEntity_DDO("btnGhi");

                            checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_DDO(dsNPC_TRTH_DDO_Entity, ref strError);

                        }

                        #endregion
                    }
                    else
                        if (ckbTutinh.IsChecked == true) // tu tinh
                        {
                            #region ========= dữ liệu điểm đo NPC_TRTH_DDO  ==========

                            if (checkInsert == true)
                            {
                                setEntity_DDO("btnGhi");

                                checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_DDO(dsNPC_TRTH_DDO_Entity, ref strError);

                            }

                            #endregion
                        }
                        else
                            if (ckbThoaihoan.IsChecked == true) // thoai hoan
                            {
                                #region ==========   dữ liệu chỉ số NPC_TRTH_CHISO ==========
                                ID_CHISO = Id_chisoKy0;
                                dtNgayDKY = dtpTungayCancuTH.SelectedDate.Value.Date;
                                dtNgayCKY = dtpDenngayCancuTH.SelectedDate.Value.Date;
                                sanluongKy = 0;
                                Ky = Convert.ToInt16(txtSokyCancuTH.Text.Trim());
                                CHISO_CU = 0;
                                CHISO_MOI = Convert.ToDouble(txtChisothao.Text.Trim());

                                setEntity_CHISO("btnGhi");

                                checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_CHISO(dsNPC_TRTH_CHISO_Entity, ref strError);

                                #endregion

                                #region ========= dữ liệu điểm đo NPC_TRTH_DDO  ==========

                                if (checkInsert == true)
                                {
                                    setEntity_DDO("btnGhi");

                                    checkInsert = GlobalServices.Service_Truythu.update_NPC_TRTH_DDO(dsNPC_TRTH_DDO_Entity, ref strError);

                                }

                                #endregion
                            }
                }


               

                if (checkInsert == true)
                {
                    MessageBox.Show("Ghi dữ liệu thành công !");
                    this.Cursor = null;
                }
                else
                {
                    MessageBox.Show("Không ghi được dữ liệu điểm đo !" + strError);
                    this.Cursor = null;
                    return;
                }


                btnThemMoi.IsEnabled = true;
                btnSua.IsEnabled = true;
                btnHuy.IsEnabled = false;
                btnGhi.IsEnabled = false;
                btnIn.IsEnabled = true;
                btnLayDuLieu_I.IsEnabled = false;
                btnXoa.IsEnabled = true;

                Enable_Items(false);
                Enable_KyCancu(false, 0);
                strBtnClick = "";



            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                this.Cursor = null;
            }
        }

        private void btnIn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                intID_TRTH = Convert.ToInt32(txtMa_TT.Text);

                DataSet dsKHANG = GlobalServices.Service_Truythu.select_NPC_TRTH_KHANG_by_id_truythu(strMa_dviqly, intID_TRTH);

                DataSet dsCHI_SO = GlobalServices.Service_Truythu.select_NPC_TRTH_CHISO_by_id_truythu(strMa_dviqly, intID_TRTH);

                DataSet dsDDO = GlobalServices.Service_Truythu.select_NPC_TRTH_DDO_by_id_truythu(strMa_dviqly, intID_TRTH);

                strLoai_khang = dsKHANG.Tables[0].Rows[0]["LOAI_KHANG"].ToString();

                DataTable dtkhang = dsKHANG.Tables[0].Copy();
                dtkhang.TableName = "NPC_TRTH_KHANG";

                DataTable dtchiso = new DataTable();
                if (dsCHI_SO != null && dsCHI_SO.Tables[0].Rows.Count > 0)
                {
                    dtchiso = dsCHI_SO.Tables[0].Copy();
                    dtchiso.TableName = "NPC_TRTH_CHISO";
                }

                DataTable dtddo = dsDDO.Tables[0].Copy();
                dtddo.TableName = "NPC_TRTH_DDO";
                
                DataSet dsIn = new DataSet();
                

                #region
                TimeSpan tg1 = TimeSpan.Zero;
                TimeSpan tg2 = TimeSpan.Zero;
                TimeSpan tg3 = TimeSpan.Zero;
                decimal dntong = 0;
                decimal dn1 = 0;
                decimal dn2 = 0;
                decimal dn3 = 0;
                decimal dnTB = 0;
                decimal TongsoNgay = 0;
                decimal Atieuthu = 0;
                string strID = "";
                string strYear = "";
                string strIDBB = "";

                strID = dtkhang.Rows[0]["ID_TRTH"].ToString();
                strYear = Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("yyyy");
                if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString() == "CTH")
                {
                    strIDBB = strID + "/" + strYear + "/" + "BBTH";
                }
                else
                {
                    strIDBB = strID + "/" + strYear + "/" + "BBTT";
                }

                #endregion


                if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(1, 1) != "3" && dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString() != "CTH")
                {
                    DataRow[] ArrKy1 = dtchiso.Select("KY = 1");
                    DataRow[] ArrKy2 = dtchiso.Select("KY = 2");
                    DataRow[] ArrKy3 = dtchiso.Select("KY = 3");
                    DataRow[] ArrKy21 = dtchiso.Select("KY = 21");
                    DataRow[] ArrKy22 = dtchiso.Select("KY = 22");
                    DataRow[] ArrKy10 = dtchiso.Select("KY = 10");

                    if (strLoai_khang == "N") // bac thang va khong bac thang in chung mau
                    {
                        #region ==== bac thang =====

                        rpt_NPC_TRTH_B16_CO_SHBT rptSH = new rpt_NPC_TRTH_B16_CO_SHBT();

                        rptSH.SetParameterValue("ID_TRTH", strIDBB);
                        rptSH.SetParameterValue("DCHI_TTOAN", dtkhang.Rows[0]["DCHI_TTOAN"].ToString());
                        rptSH.SetParameterValue("dviqly_ctren", strTen_dviqly_CT.ToUpper());
                        rptSH.SetParameterValue("dviqly", strTen_dviqly);
                        rptSH.SetParameterValue("TEN_DDIEN1", dtkhang.Rows[0]["TEN_DDIEN1"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN1", dtkhang.Rows[0]["CVU_DDIEN1"].ToString());
                        rptSH.SetParameterValue("TEN_DDIEN2", dtkhang.Rows[0]["TEN_DDIEN2"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN2", dtkhang.Rows[0]["CVU_DDIEN2"].ToString());
                        rptSH.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                        rptSH.SetParameterValue("MA_KHANG", dtkhang.Rows[0]["MA_KHANG"].ToString());
                        rptSH.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                        rptSH.SetParameterValue("DDIEN_MUA", dtkhang.Rows[0]["DDIEN_MUA"].ToString());
                        rptSH.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                        string sct = dtddo.Rows[0]["SO_CTO"].ToString();
                        rptSH.SetParameterValue("socto", sct);
                        rptSH.SetParameterValue("loaicto", dtkhang.Rows[0]["LOAI_CTO"].ToString());
                        rptSH.SetParameterValue("sobbktra", dtkhang.Rows[0]["SO_BB_KTRA"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["SO_BB_KTRA"].ToString());
                        rptSH.SetParameterValue("ngayktra", dtkhang.Rows[0]["NGAY_KTRA"].ToString() == string.Empty ? ". . . ./. . . ./. . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_KTRA"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("sobbkdinh", dtkhang.Rows[0]["SO_BB_KDINH"].ToString().Trim() == string.Empty ? ". . . ." : dtkhang.Rows[0]["SO_BB_KDINH"].ToString());
                        rptSH.SetParameterValue("thangTTHD", dtkhang.Rows[0]["THANG_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["THANG_TT"].ToString());
                        rptSH.SetParameterValue("namTTHD", dtkhang.Rows[0]["NAM_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["NAM_TT"].ToString());
                        rptSH.SetParameterValue("ngay", DateTime.Now.Day.ToString());
                        rptSH.SetParameterValue("thang", DateTime.Now.Month.ToString());
                        rptSH.SetParameterValue("nam", DateTime.Now.Year.ToString());

                        rptSH.SetParameterValue("chiso_gannhat", Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##"));
                        rptSH.SetParameterValue("ngayghi_gannhat", Convert.ToDateTime(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["NGAY_DKY"]).AddDays(-1).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("ngaydunghd", Convert.ToDateTime(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("ngaydungcd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));


                        string chisodocduoc = dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString();
                        if (dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString() != "0")
                        {
                            rptSH.SetParameterValue("chisothao", dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString());
                        }
                        else
                        {
                            rptSH.SetParameterValue("chisothao", "không có");
                        }

                        rptSH.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());
                        rptSH.SetParameterValue("ngaykd", dtkhang.Rows[0]["NGAY_KDINH"].ToString() == string.Empty ? ". . . ./. . . ./. . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_KDINH"]).ToString("dd/MM/yyyy"));

                        if (countKy >= 3)
                        {
                            if (ArrKy1.Count() > 0)
                            {
                                rptSH.SetParameterValue("ky1", "1");
                                dn1 = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                            }

                            if (ArrKy2.Count() > 0)
                            {
                                rptSH.SetParameterValue("ky2", "2");
                                dn2 = Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                            }

                            if (ArrKy3.Count() > 0)
                            {
                                rptSH.SetParameterValue("ky3", "3");
                                dn3 = Convert.ToDecimal(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn3", dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg3 = Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());
                            }

                            if (ArrKy21.Count() > 0)
                            {
                                if (ArrKy2.Count() < 1) // ky 21 lam ky can cu thu 2
                                {
                                    rptSH.SetParameterValue("ky2", "2");
                                    dn2 = Convert.ToDecimal(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg2 = Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                                }
                                else // ky 21 lam ky can cu thu 3
                                {
                                    rptSH.SetParameterValue("ky3", "3");
                                    dn3 = Convert.ToDecimal(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn3", dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg3 = Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());
                                }
                            }

                            if (ArrKy22.Count() > 0) // ky 22 lam ky can cu thu 3
                            {
                                rptSH.SetParameterValue("ky3", "3");
                                dn3 = Convert.ToDecimal(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn3", dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg3 = Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());
                            }

                            if (ArrKy21.Count() < 1 && ArrKy22.Count() < 1)
                            {
                                rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                            }
                        }
                        else
                            if (countKy == 2)
                            {
                                rptSH.SetParameterValue("ky1", "1");
                                dn1 = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());

                                if (ArrKy2.Count() > 0)
                                {
                                    rptSH.SetParameterValue("ky2", "2");
                                    dn2 = Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                                }
                                else
                                    if (ArrKy21.Count() > 0)
                                    {
                                        rptSH.SetParameterValue("ky2", "2");
                                        dn2 = Convert.ToDecimal(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                        rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                        rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                        rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                        rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                        tg2 = Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                        rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                                    }

                                rptSH.SetParameterValue("ky3", "");
                                rptSH.SetParameterValue("dn3", "");
                                rptSH.SetParameterValue("tu3", "");
                                rptSH.SetParameterValue("den3", "");
                                rptSH.SetParameterValue("songay3", "");
                            }
                            else
                                if (countKy == 1)
                                {
                                    rptSH.SetParameterValue("ky1", "1");
                                    dn1 = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));

                                    rptSH.SetParameterValue("ky2", "");
                                    rptSH.SetParameterValue("dn2", "");
                                    rptSH.SetParameterValue("tu2", "");
                                    rptSH.SetParameterValue("den2", "");
                                    rptSH.SetParameterValue("songay2", "");

                                    rptSH.SetParameterValue("ky3", "");
                                    rptSH.SetParameterValue("dn3", "");
                                    rptSH.SetParameterValue("tu3", "");
                                    rptSH.SetParameterValue("den3", "");
                                    rptSH.SetParameterValue("songay3", "");
                                }

                        if (ArrKy3.Count() > 0)
                        {
                            rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        }
                        else
                            if (ArrKy2.Count() > 0)
                            {
                                rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                            }
                            else
                                if (ArrKy1.Count() > 0)
                                {
                                    rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));

                                }

                        #region

                        /*
                    if (countKy >= 3)
                    {
                        rptSH.SetParameterValue("ky1", "1");
                        rptSH.SetParameterValue("ky2", "2");
                        rptSH.SetParameterValue("ky3", "3");
                        rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                        rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                        rptSH.SetParameterValue("dn3", dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                        rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                    }

                    if (countKy == 2)
                    {
                        rptSH.SetParameterValue("ky1", "1");
                        rptSH.SetParameterValue("ky2", "2");
                        rptSH.SetParameterValue("ky3", "");
                        rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                        rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                        rptSH.SetParameterValue("dn3", "");
                        rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu3", "");
                        rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den3", "");
                        rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                    }
                    if (countKy == 1)
                    {
                        rptSH.SetParameterValue("ky1", "1");
                        rptSH.SetParameterValue("ky2", "");
                        rptSH.SetParameterValue("ky3", "");
                        rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                        rptSH.SetParameterValue("dn2", "");
                        rptSH.SetParameterValue("dn3", "");
                        rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu2", "");
                        rptSH.SetParameterValue("tu3", "");
                        rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den2", "");
                        rptSH.SetParameterValue("den3", "");
                        rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                    }
                     * */
                        #endregion

                        if (countKy >= 3)
                        {
                            rptSH.SetParameterValue("soky", "3");
                        }
                        else
                        {
                            rptSH.SetParameterValue("soky", countKy.ToString());
                        }

                        rptSH.SetParameterValue("truythutu", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_TU"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("truythuden", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                        TimeSpan ts = Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]) - Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_TU"]);
                        rptSH.SetParameterValue("khoangtruythu", ts.Days + 1);
                        rptSH.SetParameterValue("tgtruythu", Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]));
                        rptSH.SetParameterValue("TG_MDIEN_CANCU", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24));
                        rptSH.SetParameterValue("TG_MDIEN_TRTHU", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_TRTHU"]) / 24));
                        rptSH.SetParameterValue("TG_MDIEN_TT_byhour", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_TRTHU"])));

                        rptSH.SetParameterValue("SL_TRTHU", Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]).ToString("###,###,###,###"));
                        rptSH.SetParameterValue("SL_THAO", Convert.ToInt32(dtddo.Rows[0]["SL_THAO"]) == 0 ? "0" : Convert.ToInt32(dtddo.Rows[0]["SL_THAO"]).ToString("###,###,###,###"));
                        rptSH.SetParameterValue("hsn", hsn.ToString());

                        dntong = dn1 + dn2 + dn3;
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));
                        if (countKy >= 3)
                        {
                            TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 3) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                            dnTB = Math.Round(dntong / (tg1.Days + tg2.Days + tg3.Days + 3 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24),2);
                        }
                        else
                            if (countKy == 2)
                            {
                                TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 2) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                                dnTB = Math.Round( dntong / (tg1.Days + tg2.Days + tg3.Days + 2 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24),2);
                            }
                            else
                            {
                                TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 1) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                                dnTB = Math.Round(dntong / (tg1.Days + tg2.Days + tg3.Days + 1 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24),2);
                            }

                        if (dnTB >= 1)
                        {
                            rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));
                        }
                        else
                        {
                            rptSH.SetParameterValue("dnTB", "0" + dnTB.ToString("###,###,###,###.##"));
                        }

                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));
                        Atieuthu = Math.Round(dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]),0);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));


                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("#########.##")) + " - " + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##")) + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##")) + " - " + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##")) + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }


                        #region
                        /*
                    if (countKy >= 3)
                    {
                        TimeSpan tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        TimeSpan tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        TimeSpan tg3 = Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                        rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                        rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());

                        decimal dntong = 0;
                        dntong = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]) + Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]) + Convert.ToDecimal(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));

                        decimal dnTB = 0;
                        dnTB = dntong / (tg1.Days + tg2.Days + tg3.Days + 3 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));

                        decimal TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 3) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));

                        decimal Atieuthu = 0;
                        Atieuthu = dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));

                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("###,###,###.##") + " - " + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + " - " + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }

                    }
                    if (countKy == 2)
                    {
                        TimeSpan tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        TimeSpan tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);

                        rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                        rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                        rptSH.SetParameterValue("songay3", "");

                        decimal dntong = 0;
                        dntong = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]) + Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));

                        decimal dnTB = 0;
                        dnTB = dntong / (tg1.Days + tg2.Days + 2 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));

                        decimal TongsoNgay = (tg1.Days + tg2.Days + 2) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));

                        decimal Atieuthu = 0;
                        Atieuthu = dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));

                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("###,###,###.##") + " - " + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + " - " + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                    }

                    if (countKy == 1)
                    {
                        TimeSpan tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);

                        rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                        rptSH.SetParameterValue("songay2", "");
                        rptSH.SetParameterValue("songay3", "");

                        decimal dntong = 0;
                        dntong = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));

                        decimal dnTB = 0;
                        dnTB = dntong / (tg1.Days + 1 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));

                        decimal TongsoNgay = (tg1.Days + 1) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));

                        decimal Atieuthu = 0;
                        Atieuthu = dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));

                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                    }
                    */

                        /*
                        DateTime ddie = Convert.ToDateTime(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["NGAY_CKY"]);
                        //TimeSpan tsnext = dcy - dky;


                        strMa_ddo = dtddo.Rows[0]["MA_DDO"].ToString();
                        DataSet dsSogcs = GlobalServices.Service_Truythu.Get_ky_GCS(strMa_dviqly, strMa_ddo);

                        int ngaygcs = 0;
                        ngaygcs = Convert.ToInt16(dsSogcs.Tables[0].Rows[0]["NGAY_GHI"]);

                        if (ddie.Day <= ngaygcs)
                        {
                            rptSH.SetParameterValue("dntt1", Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]).ToString("#########"));
                            rptSH.SetParameterValue("dntt2", "");
                            rptSH.SetParameterValue("thangTT1", ddie.ToString("MM/yyyy"));
                            rptSH.SetParameterValue("thangTT2", "");
                        }
                        else
                        {
                            rptSH.SetParameterValue("dntt1", Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]).ToString("#########"));
                            rptSH.SetParameterValue("dntt2", "");
                            rptSH.SetParameterValue("thangTT1", ddie.AddMonths(1).ToString("MM/yyyy"));
                            rptSH.SetParameterValue("thangTT2", "");
                        }
                        */
                        #endregion

                        DateTime dky = Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_TU"]);
                        DateTime dcy = Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]);

                        TimeSpan tsinThang = dky.AddMonths(1) - dky;
                        int ngayinThang = tsinThang.Days;

                        TimeSpan tsnext = dcy - dky;

                        DataSet dsKyHDON = new DataSet();
                        DataSet dsSTHANGLVIEC = new DataSet();
                        dsKyHDON = GlobalServices.Service_Truythu.Get_ky_hdon_gannhat(strMa_dviqly, strMa_ddo);
                        dsSTHANGLVIEC = GlobalServices.Service_Truythu.Get_Sthang_Lviec_CMIS(strMa_dviqly);
                        DataTable dtTHANGHD = dsSTHANGLVIEC.Tables[0].Select("PHAN_HE = 'HD'").CopyToDataTable();

                        DateTime dtimeTHANGHD = Convert.ToDateTime(dtTHANGHD.Rows[0]["THANG"].ToString() + "/01" + "/" + dtTHANGHD.Rows[0]["NAM"].ToString());

                        DateTime dtHDONDDO = new DateTime();
                        if (dsKyHDON != null && dsKyHDON.Tables[0].Rows.Count > 0)
                        {
                            dtHDONDDO = Convert.ToDateTime(dsKyHDON.Tables[0].Rows[0]["THANG"].ToString() + "/01" + "/" + dsKyHDON.Tables[0].Rows[0]["NAM"].ToString());
                        }

                        DateTime dtHdon =  new DateTime();
                        if (dtimeTHANGHD > dtHDONDDO)
                        {
                            dtHdon = dtimeTHANGHD.AddMonths(-1);
                        }
                        else 
                        {
                            dtHdon = dtimeTHANGHD;
                        }

                        //DateTime dtHdon = Convert.ToDateTime(dsKyHDON.Tables[0].Rows[0]["THANG"].ToString() + "/01" + "/" + dsKyHDON.Tables[0].Rows[0]["NAM"].ToString());

                        if (tsnext.Days + 1 > ngayinThang)
                        {
                            double sltt = Convert.ToDouble(dtddo.Rows[0]["SL_TRTHU"]);
                            double songay = tsnext.Days + 1;
                            double tylengay = Convert.ToDouble(Convert.ToDouble(ngayinThang) / songay);
                            double dntt1 = sltt * tylengay;
                            rptSH.SetParameterValue("dntt1", dntt1.ToString("###,###,###"));
                            rptSH.SetParameterValue("dntt2", (Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]) - dntt1).ToString("###,###,###"));
                            rptSH.SetParameterValue("thangTT1", dtHdon.AddMonths(1).ToString("MM/yyyy"));
                            rptSH.SetParameterValue("thangTT2", dtHdon.AddMonths(2).ToString("MM/yyyy"));
                            rptSH.SetParameterValue("thangTT", dtHdon.AddMonths(1).ToString("MM/yyyy") + " và tháng " + dtHdon.AddMonths(2).ToString("MM/yyyy"));
                        }
                        else
                        {
                            rptSH.SetParameterValue("dntt1", Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]).ToString("###,###,###"));
                            rptSH.SetParameterValue("dntt2", "");
                            rptSH.SetParameterValue("thangTT1", dtHdon.AddMonths(1).ToString("MM/yyyy"));
                            rptSH.SetParameterValue("thangTT2", "");
                            rptSH.SetParameterValue("thangTT", dtHdon.AddMonths(1).ToString("MM/yyyy"));
                        }

                        rptSH.SetParameterValue("DCHI_TTOAN", strDCHI_TTOAN.ToString());


                        UtilReport.RptManager.showReportToWin(this, rptSH, strMa_dviqly, new string[] { "Formula1" }, new string[] { "Formula1" });
                        dsIn.Clear();
                        #endregion
                    }
                    else
                    {
                        #region ==== tat ca in chung mot mau =====

                        rpt_NPC_TRTH_B16_CO rptSH = new rpt_NPC_TRTH_B16_CO();

                        rptSH.SetParameterValue("ID_TRTH", strIDBB);
                        rptSH.SetParameterValue("DCHI_TTOAN", dtkhang.Rows[0]["DCHI_TTOAN"].ToString());
                        rptSH.SetParameterValue("dviqly_ctren", strTen_dviqly_CT.ToUpper());
                        rptSH.SetParameterValue("dviqly", strTen_dviqly);
                        rptSH.SetParameterValue("TEN_DDIEN1", dtkhang.Rows[0]["TEN_DDIEN1"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN1", dtkhang.Rows[0]["CVU_DDIEN1"].ToString());
                        rptSH.SetParameterValue("TEN_DDIEN2", dtkhang.Rows[0]["TEN_DDIEN2"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN2", dtkhang.Rows[0]["CVU_DDIEN2"].ToString());
                        rptSH.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                        rptSH.SetParameterValue("MA_KHANG", dtkhang.Rows[0]["MA_KHANG"].ToString());
                        rptSH.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                        rptSH.SetParameterValue("DDIEN_MUA", dtkhang.Rows[0]["DDIEN_MUA"].ToString());
                        rptSH.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                        rptSH.SetParameterValue("socto", dtddo.Rows[0]["SO_CTO"].ToString());
                        rptSH.SetParameterValue("loaicto", dtkhang.Rows[0]["LOAI_CTO"].ToString());
                        rptSH.SetParameterValue("sobbktra", dtkhang.Rows[0]["SO_BB_KTRA"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["SO_BB_KTRA"].ToString());
                        rptSH.SetParameterValue("ngayktra", dtkhang.Rows[0]["NGAY_KTRA"].ToString() == string.Empty ? ". . . ./. . . ./. . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_KTRA"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("sobbkdinh", dtkhang.Rows[0]["SO_BB_KDINH"].ToString().Trim() == string.Empty ? ". . . ." : dtkhang.Rows[0]["SO_BB_KDINH"].ToString());
                        rptSH.SetParameterValue("thangTTHD", dtkhang.Rows[0]["THANG_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["THANG_TT"].ToString());
                        rptSH.SetParameterValue("namTTHD", dtkhang.Rows[0]["NAM_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["NAM_TT"].ToString());
                        rptSH.SetParameterValue("ngay", DateTime.Now.Day.ToString());
                        rptSH.SetParameterValue("thang", DateTime.Now.Month.ToString());
                        rptSH.SetParameterValue("nam", DateTime.Now.Year.ToString());

                        rptSH.SetParameterValue("chiso_gannhat", Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##"));
                        rptSH.SetParameterValue("ngayghi_gannhat", Convert.ToDateTime(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["NGAY_DKY"]).AddDays(-1).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("ngaydunghd", Convert.ToDateTime(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("ngaydungcd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));

                        #region cu
                        /*
                    string chisodocduoc = dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString();
                    if (dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString() != "0")
                    {
                        rptSH.SetParameterValue("chisothao", Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("###,###,###.##"));
                    }
                    else
                    {
                        rptSH.SetParameterValue("chisothao", "không có");
                    }

                    rptSH.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());

                    if (countKy >= 3)
                    {
                        rptSH.SetParameterValue("ky1", "1");
                        rptSH.SetParameterValue("ky2", "2");
                        rptSH.SetParameterValue("ky3", "3");
                        rptSH.SetParameterValue("dn1", Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]).ToString("###,###,###.##"));
                        rptSH.SetParameterValue("dn2", Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]).ToString("###,###,###.##"));
                        rptSH.SetParameterValue("dn3", Convert.ToDecimal(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"]).ToString("###,###,###.##"));
                        rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                    }

                    if (countKy == 2)
                    {
                        rptSH.SetParameterValue("ky1", "1");
                        rptSH.SetParameterValue("ky2", "2");
                        rptSH.SetParameterValue("ky3", "");
                        rptSH.SetParameterValue("dn1", Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]).ToString("###,###,###.##"));
                        rptSH.SetParameterValue("dn2", Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]).ToString("###,###,###.##"));
                        rptSH.SetParameterValue("dn3", "");
                        rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu3", "");
                        rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den3", "");
                        rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                    }
                    if (countKy == 1)
                    {
                        rptSH.SetParameterValue("ky1", "1");
                        rptSH.SetParameterValue("ky2", "");
                        rptSH.SetParameterValue("ky3", "");
                        rptSH.SetParameterValue("dn1", Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]).ToString("###,###,###.##"));
                        rptSH.SetParameterValue("dn2", "");
                        rptSH.SetParameterValue("dn3", "");
                        rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("tu2", "");
                        rptSH.SetParameterValue("tu3", "");
                        rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("den2", "");
                        rptSH.SetParameterValue("den3", "");
                        rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                    }

                    if (countKy >= 3)
                    {
                        rptSH.SetParameterValue("soky", "3");
                    }
                    else
                    {
                        rptSH.SetParameterValue("soky", countKy.ToString());
                    }

                    rptSH.SetParameterValue("truythutu", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_TU"]).ToString("dd/MM/yyyy"));
                    rptSH.SetParameterValue("truythuden", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                    TimeSpan ts = Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]) - Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_TU"]);
                    rptSH.SetParameterValue("khoangtruythu", ts.Days + 1);
                    rptSH.SetParameterValue("tgtruythu", Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]));
                    rptSH.SetParameterValue("TG_MDIEN_CANCU", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24));
                    rptSH.SetParameterValue("TG_MDIEN_TRTHU", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_TRTHU"]) / 24));
                    rptSH.SetParameterValue("SL_TRTHU", Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]).ToString("###,###,###,###"));
                    rptSH.SetParameterValue("SL_THAO", dtddo.Rows[0]["SL_THAO"].ToString());
                    rptSH.SetParameterValue("hsn", hsn.ToString());


                    if (countKy >= 3)
                    {
                        tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        tg3 = Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                        rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                        rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());

                        dntong = 0;
                        dntong = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]) + Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]) + Convert.ToDecimal(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));

                        dnTB = 0;
                        dnTB = dntong / (tg1.Days + tg2.Days + tg3.Days + 3 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));

                        TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 3) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));

                        Atieuthu = 0;
                        Atieuthu = dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));

                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("###,###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }

                    }
                    if (countKy == 2)
                    {
                        tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                        tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);

                        rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                        rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                        rptSH.SetParameterValue("songay3", "");

                        dntong = 0;
                        dntong = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]) + Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));

                        dnTB = 0;
                        dnTB = dntong / (tg1.Days + tg2.Days + 2 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));

                        TongsoNgay = (tg1.Days + tg2.Days + 2) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));

                        Atieuthu = 0;
                        Atieuthu = dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));

                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("###,###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                    }

                    if (countKy == 1)
                    {
                        tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);

                        rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                        rptSH.SetParameterValue("songay2", "");
                        rptSH.SetParameterValue("songay3", "");

                        dntong = 0;
                        dntong = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));

                        dnTB = 0;
                        dnTB = dntong / (tg1.Days + 1 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));

                        TongsoNgay = (tg1.Days + 1) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));

                        Atieuthu = 0;
                        Atieuthu = dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));

                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("###,###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + "-" + Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("###,###,###,###.##") + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                    }
                    */
                        #endregion

                        string chisodocduoc = dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString();
                        if (dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString() != "0")
                        {
                            rptSH.SetParameterValue("chisothao", dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"].ToString());
                        }
                        else
                        {
                            rptSH.SetParameterValue("chisothao", "không có");
                        }

                        rptSH.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());
                        rptSH.SetParameterValue("ngaykd", dtkhang.Rows[0]["NGAY_KDINH"].ToString() == string.Empty ? ". . . ./. . . ./. . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_KDINH"]).ToString("dd/MM/yyyy"));

                        if (countKy >= 3)
                        {
                            if (ArrKy1.Count() > 0)
                            {
                                rptSH.SetParameterValue("ky1", "1");
                                dn1 = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                            }

                            if (ArrKy2.Count() > 0)
                            {
                                rptSH.SetParameterValue("ky2", "2");
                                dn2 = Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                            }

                            if (ArrKy3.Count() > 0)
                            {
                                rptSH.SetParameterValue("ky3", "3");
                                dn3 = Convert.ToDecimal(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn3", dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg3 = Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());
                            }

                            if (ArrKy21.Count() > 0)
                            {
                                if (ArrKy2.Count() < 1) // ky 21 lam ky can cu thu 2
                                {
                                    rptSH.SetParameterValue("ky2", "2");
                                    dn2 = Convert.ToDecimal(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg2 = Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                                }
                                else // ky 21 lam ky can cu thu 3
                                {
                                    rptSH.SetParameterValue("ky3", "3");
                                    dn3 = Convert.ToDecimal(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn3", dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg3 = Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());
                                }
                            }

                            if (ArrKy22.Count() > 0) // ky 22 lam ky can cu thu 3
                            {
                                rptSH.SetParameterValue("ky3", "3");
                                dn3 = Convert.ToDecimal(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn3", dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu3", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den3", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg3 = Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 22").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay3", (tg3.Days + 1).ToString());
                            }

                            if (ArrKy21.Count() < 1 && ArrKy22.Count() < 1)
                            {
                                rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                            }
                        }
                        else
                            if (countKy == 2)
                            {
                                rptSH.SetParameterValue("ky1", "1");
                                dn1 = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());

                                if (ArrKy2.Count() > 0)
                                {
                                    rptSH.SetParameterValue("ky2", "2");
                                    dn2 = Convert.ToDecimal(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg2 = Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                                }
                                else
                                    if (ArrKy21.Count() > 0)
                                    {
                                        rptSH.SetParameterValue("ky2", "2");
                                        dn2 = Convert.ToDecimal(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                        rptSH.SetParameterValue("dn2", dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                        rptSH.SetParameterValue("tu2", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                        rptSH.SetParameterValue("den2", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                        rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                        tg2 = Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 21").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                        rptSH.SetParameterValue("songay2", (tg2.Days + 1).ToString());
                                    }

                                rptSH.SetParameterValue("ky3", "");
                                rptSH.SetParameterValue("dn3", "");
                                rptSH.SetParameterValue("tu3", "");
                                rptSH.SetParameterValue("den3", "");
                                rptSH.SetParameterValue("songay3", "");
                            }
                            else
                                if (countKy == 1)
                                {
                                    rptSH.SetParameterValue("ky1", "1");
                                    dn1 = Convert.ToDecimal(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"]);
                                    rptSH.SetParameterValue("dn1", dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["SAN_LUONG"].ToString());
                                    rptSH.SetParameterValue("tu1", "Từ " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                                    rptSH.SetParameterValue("den1", "đến " + Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                                    tg1 = Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_CKY"]) - Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]);
                                    rptSH.SetParameterValue("songay1", (tg1.Days + 1).ToString());
                                    rptSH.SetParameterValue("ngayEnd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));

                                    rptSH.SetParameterValue("ky2", "");
                                    rptSH.SetParameterValue("dn2", "");
                                    rptSH.SetParameterValue("tu2", "");
                                    rptSH.SetParameterValue("den2", "");
                                    rptSH.SetParameterValue("songay2", "");

                                    rptSH.SetParameterValue("ky3", "");
                                    rptSH.SetParameterValue("dn3", "");
                                    rptSH.SetParameterValue("tu3", "");
                                    rptSH.SetParameterValue("den3", "");
                                    rptSH.SetParameterValue("songay3", "");
                                }

                        if (ArrKy3.Count() > 0)
                        {
                            rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 3").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        }
                        else
                            if (ArrKy2.Count() > 0)
                            {
                                rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 2").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                            }
                            else
                                if (ArrKy1.Count() > 0)
                                {
                                    rptSH.SetParameterValue("tgmin", Convert.ToDateTime(dtchiso.Select("KY = 1").CopyToDataTable().Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));

                                }


                        if (countKy >= 3)
                        {
                            rptSH.SetParameterValue("soky", "3");
                        }
                        else
                        {
                            rptSH.SetParameterValue("soky", countKy.ToString());
                        }

                        rptSH.SetParameterValue("truythutu", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_TU"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("truythuden", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                        TimeSpan ts = Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]) - Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_TU"]);
                        rptSH.SetParameterValue("khoangtruythu", ts.Days + 1);
                        rptSH.SetParameterValue("tgtruythu", Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]));
                        rptSH.SetParameterValue("TG_MDIEN_CANCU", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24));
                        rptSH.SetParameterValue("TG_MDIEN_TRTHU", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_TRTHU"]) / 24));
                        rptSH.SetParameterValue("TG_MDIEN_TT_byhour", (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_TRTHU"])));
                        rptSH.SetParameterValue("SL_TRTHU", Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]).ToString("###,###,###,###"));
                        rptSH.SetParameterValue("SL_THAO", Convert.ToInt32(dtddo.Rows[0]["SL_THAO"]) == 0 ? "0" : Convert.ToInt32(dtddo.Rows[0]["SL_THAO"]).ToString("###,###,###,###"));
                        rptSH.SetParameterValue("hsn", hsn.ToString());
                        rptSH.SetParameterValue("chuoitinhtien", dtddo.Rows[0]["CHUOI_TINHTIEN"].ToString() == string.Empty ? "" : dtddo.Rows[0]["CHUOI_TINHTIEN"].ToString());

                        dntong = dn1 + dn2 + dn3;
                        rptSH.SetParameterValue("dnTong", dntong.ToString("###,###,###,###"));
                        if (countKy >= 3)
                        {
                            TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 3) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                            dnTB = Math.Round(dntong / (tg1.Days + tg2.Days + tg3.Days + 3 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24),2);
                        }
                        else
                            if (countKy == 2)
                            {
                                TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 2) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                                dnTB = Math.Round(dntong / (tg1.Days + tg2.Days + tg3.Days + 2 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24),2);
                            }
                            else
                            {
                                TongsoNgay = (tg1.Days + tg2.Days + tg3.Days + 1) - (Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24);
                                dnTB = Math.Round(dntong / (tg1.Days + tg2.Days + tg3.Days + 1 - Convert.ToDecimal(dtddo.Rows[0]["TG_MDIEN_CANCU"]) / 24),2);
                            }

                        if (dnTB >= 1)
                        {
                            rptSH.SetParameterValue("dnTB", dnTB.ToString("###,###,###,###.##"));
                        }
                        else
                        {
                            rptSH.SetParameterValue("dnTB", "0" + dnTB.ToString("###,###,###,###.##"));
                        }

                        rptSH.SetParameterValue("TongsoNgay", TongsoNgay.ToString("###,###,###,###.##"));
                        Atieuthu = Math.Round(dnTB * Convert.ToDecimal(dtddo.Rows[0]["TG_TRTH"]),0);
                        rptSH.SetParameterValue("At.thu", Atieuthu.ToString("###,###,###,###"));


                        if (chisodocduoc != "0")
                        {
                            string strAddo = "(" + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_MOI"]).ToString("#########.##")) + " - " + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##")) + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }
                        else
                        {
                            string strAddo = "(" + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##")) + " - " + (Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##") == string.Empty ? "0" : Convert.ToDecimal(dtchiso.Select("KY = 0").CopyToDataTable().Rows[0]["CHISO_CU"]).ToString("#########.##")) + ") x " + hsn.ToString();
                            rptSH.SetParameterValue("Addo", strAddo);
                        }

                        rptSH.SetParameterValue("chuoigia", dtddo.Rows[0]["CHUOI_GIA"].ToString());
                        rptSH.SetParameterValue("thanhtien", Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]).ToString("###,###,###,###"));
                        rptSH.SetParameterValue("tienthue", (Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(0.1)).ToString("###,###,###,###"));
                        decimal tongtien = Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(1.1);
                        rptSH.SetParameterValue("tongtien", tongtien.ToString("###,###,###,###"));
                        rptSH.SetParameterValue("bangchu", VNCurrency.ToString(tongtien));

                        DataSet dsKyHDON = new DataSet();
                        DataSet dsSTHANGLVIEC = new DataSet();
                        dsKyHDON = GlobalServices.Service_Truythu.Get_ky_hdon_gannhat(strMa_dviqly, strMa_ddo);
                        dsSTHANGLVIEC = GlobalServices.Service_Truythu.Get_Sthang_Lviec_CMIS(strMa_dviqly);
                        DataTable dtTHANGHD = dsSTHANGLVIEC.Tables[0].Select("PHAN_HE = 'HD'").CopyToDataTable();

                        DateTime dtimeTHANGHD = Convert.ToDateTime(dtTHANGHD.Rows[0]["THANG"].ToString() + "/01" + "/" + dtTHANGHD.Rows[0]["NAM"].ToString());

                        DateTime dtHDONDDO = Convert.ToDateTime(dsKyHDON.Tables[0].Rows[0]["THANG"].ToString() + "/01" + "/" + dsKyHDON.Tables[0].Rows[0]["NAM"].ToString());

                        DateTime dtHdon = new DateTime();
                        if (dtimeTHANGHD > dtHDONDDO)
                        {
                            dtHdon = dtimeTHANGHD.AddMonths(-1);
                        }
                        else
                        {
                            dtHdon = dtimeTHANGHD;
                        }
                        //DateTime dtHdon = Convert.ToDateTime(dsKyHDON.Tables[0].Rows[0]["THANG"].ToString() + "/01" + "/" + dsKyHDON.Tables[0].Rows[0]["NAM"].ToString());

                        rptSH.SetParameterValue("dntt1", Convert.ToDecimal(dtddo.Rows[0]["SL_TRTHU"]).ToString("###,###,###,###"));
                        rptSH.SetParameterValue("dntt2", "");
                        rptSH.SetParameterValue("thangTT1", dtHdon.AddMonths(1).ToString("MM/yyyy"));
                        rptSH.SetParameterValue("thangTT2", "");
                        rptSH.SetParameterValue("thangTT", dtHdon.AddMonths(1).ToString("MM/yyyy"));



                        UtilReport.RptManager.showReportToWin(this, rptSH, "", new string[] { "Formula1" }, new string[] { "Formula1" });
                        dsIn.Clear();
                        #endregion
                    }
                }
                else
                    if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(1, 1) == "3")
                    {
                        #region ==== Tự tính =====

                        //rpt_NPC_TRTH_CTO_TT rptSH = new rpt_NPC_TRTH_CTO_TT();
                        rpt_NPC_TRTH_B16_TUTINH rptSH = new rpt_NPC_TRTH_B16_TUTINH();

                        rptSH.SetParameterValue("ID_TRTH", strIDBB);
                        rptSH.SetParameterValue("DCHI_TTOAN", dtkhang.Rows[0]["DCHI_TTOAN"].ToString());
                        rptSH.SetParameterValue("dviqly_ctren", strTen_dviqly_CT.ToUpper());
                        rptSH.SetParameterValue("dviqly", strTen_dviqly);
                        rptSH.SetParameterValue("TEN_DDIEN1", dtkhang.Rows[0]["TEN_DDIEN1"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN1", dtkhang.Rows[0]["CVU_DDIEN1"].ToString());
                        rptSH.SetParameterValue("TEN_DDIEN2", dtkhang.Rows[0]["TEN_DDIEN2"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN2", dtkhang.Rows[0]["CVU_DDIEN2"].ToString());
                        rptSH.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                        rptSH.SetParameterValue("MA_KHANG", dtkhang.Rows[0]["MA_KHANG"].ToString());
                        rptSH.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                        rptSH.SetParameterValue("DDIEN_MUA", dtkhang.Rows[0]["DDIEN_MUA"].ToString());
                        rptSH.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                        rptSH.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());
                        rptSH.SetParameterValue("socto", dtddo.Rows[0]["SO_CTO"].ToString());
                        rptSH.SetParameterValue("loaicto", dtkhang.Rows[0]["LOAI_CTO"].ToString());

                        rptSH.SetParameterValue("sobbktra", dtkhang.Rows[0]["SO_BB_KTRA"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["SO_BB_KTRA"].ToString());
                        rptSH.SetParameterValue("ngayktra", dtkhang.Rows[0]["NGAY_KTRA"].ToString() == string.Empty ? ". . . ./. . . ./. . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_KTRA"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("sobbtthuan", dtkhang.Rows[0]["SO_BB_TTHUAN"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["SO_BB_TTHUAN"].ToString());
                        rptSH.SetParameterValue("ngaytthuan", dtkhang.Rows[0]["NGAY_TTHUAN"].ToString() == string.Empty ? ". . . ./. . . ./. . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_TTHUAN"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("thangTTHD", dtkhang.Rows[0]["THANG_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["THANG_TT"].ToString());
                        rptSH.SetParameterValue("namTTHD", dtkhang.Rows[0]["NAM_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["NAM_TT"].ToString());
                        rptSH.SetParameterValue("ngay", DateTime.Now.Day.ToString());
                        rptSH.SetParameterValue("thang", DateTime.Now.Month.ToString());
                        rptSH.SetParameterValue("nam", DateTime.Now.Year.ToString());

                        rptSH.SetParameterValue("ngaydungcd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));

                        rptSH.SetParameterValue("SL_TRTHU", Convert.ToInt32(dtddo.Rows[0]["SL_TRTHU"]).ToString("###,###,###,###"));

                        rptSH.SetParameterValue("thanhtien", Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]).ToString("###,###,###,###"));
                        rptSH.SetParameterValue("tienthue", (Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(0.1)).ToString("###,###,###,###"));
                        decimal tongtien = Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(1.1);
                        rptSH.SetParameterValue("tongtien", tongtien.ToString("###,###,###,###"));
                        rptSH.SetParameterValue("bangchu", VNCurrency.ToString(tongtien));

                        DataSet dsKyHDON = new DataSet();
                        dsKyHDON = GlobalServices.Service_Truythu.Get_ky_hdon_gannhat(strMa_dviqly, strMa_ddo);
                        //DateTime dtHdon = Convert.ToDateTime(dsKyHDON.Tables[0].Rows[0]["THANG"].ToString() + "/01" + "/" + dsKyHDON.Tables[0].Rows[0]["NAM"].ToString());

                        //rptSH.SetParameterValue("dntt1", Convert.ToDecimal(dtddo.Rows[0]["SL_TRTHU"]).ToString("###,###,###,###"));
                        //rptSH.SetParameterValue("dntt2", "");
                        //rptSH.SetParameterValue("thangTT1", dtHdon.AddMonths(1).ToString("MM/yyyy"));
                        //rptSH.SetParameterValue("thangTT2", "");
                        //rptSH.SetParameterValue("thangTT", dtHdon.AddMonths(1).ToString("MM/yyyy"));



                        UtilReport.RptManager.showReportToWin(this, rptSH, "", new string[] { "Formula1" }, new string[] { "Formula1" });
                        dsIn.Clear();
                        #endregion
                    }
                    else
                    {
                        #region === Thoái hoàn ===

                        rpt_NPC_TRTH_B16_THOAN rptSH = new rpt_NPC_TRTH_B16_THOAN();

                        rptSH.SetParameterValue("ID_TRTH", strIDBB);
                        rptSH.SetParameterValue("DCHI_TTOAN", dtkhang.Rows[0]["DCHI_TTOAN"].ToString());
                        rptSH.SetParameterValue("dviqly_ctren", strTen_dviqly_CT.ToUpper());
                        rptSH.SetParameterValue("dviqly", strTen_dviqly);
                        rptSH.SetParameterValue("TEN_DDIEN1", dtkhang.Rows[0]["TEN_DDIEN1"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN1", dtkhang.Rows[0]["CVU_DDIEN1"].ToString());
                        rptSH.SetParameterValue("TEN_DDIEN2", dtkhang.Rows[0]["TEN_DDIEN2"].ToString());
                        rptSH.SetParameterValue("CVU_DDIEN2", dtkhang.Rows[0]["CVU_DDIEN2"].ToString());
                        rptSH.SetParameterValue("TEN_KHANG", dtkhang.Rows[0]["TEN_KHANG"].ToString());
                        rptSH.SetParameterValue("MA_KHANG", dtkhang.Rows[0]["MA_KHANG"].ToString());
                        rptSH.SetParameterValue("DIA_CHI", dtkhang.Rows[0]["DIA_CHI"].ToString());
                        rptSH.SetParameterValue("DDIEN_MUA", dtkhang.Rows[0]["DDIEN_MUA"].ToString());
                        rptSH.SetParameterValue("CVU_MUA", dtkhang.Rows[0]["CVU_MUA"].ToString());
                        rptSH.SetParameterValue("sobbkdinh", dtkhang.Rows[0]["SO_BB_KDINH"].ToString().Trim() == string.Empty ? ". . . ." : dtkhang.Rows[0]["SO_BB_KDINH"].ToString());
                        rptSH.SetParameterValue("thangTTHD", dtkhang.Rows[0]["THANG_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["THANG_TT"].ToString());
                        rptSH.SetParameterValue("namTTHD", dtkhang.Rows[0]["NAM_TT"].ToString() == string.Empty ? ". . . ." : dtkhang.Rows[0]["NAM_TT"].ToString());
                        rptSH.SetParameterValue("ngay", DateTime.Now.Day.ToString());
                        rptSH.SetParameterValue("thang", DateTime.Now.Month.ToString());
                        rptSH.SetParameterValue("nam", DateTime.Now.Year.ToString());
                        rptSH.SetParameterValue("soky", dtchiso.Rows[0]["KY"].ToString());
                        rptSH.SetParameterValue("saiso", dtkhang.Rows[0]["CAN_CU"].ToString());
                        rptSH.SetParameterValue("chisothao", dtchiso.Rows[0]["CHISO_MOI"].ToString());                        
                                  
                        rptSH.SetParameterValue("lydo", dtkhang.Rows[0]["NGUYEN_NHAN"].ToString());
                        rptSH.SetParameterValue("ngaykd", dtkhang.Rows[0]["NGAY_KDINH"].ToString() == string.Empty ? ". . . ./. . . ./. . . . ." : Convert.ToDateTime(dtkhang.Rows[0]["NGAY_KDINH"]).ToString("dd/MM/yyyy"));
                            
                        rptSH.SetParameterValue("soky", dtchiso.Rows[0]["KY"].ToString());                        

                        rptSH.SetParameterValue("tungay", Convert.ToDateTime(dtchiso.Rows[0]["NGAY_DKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("denngay", Convert.ToDateTime(dtchiso.Rows[0]["NGAY_CKY"]).ToString("dd/MM/yyyy"));
                        rptSH.SetParameterValue("ngaydungcd", Convert.ToDateTime(dtddo.Rows[0]["NGAYTRTH_DEN"]).ToString("dd/MM/yyyy"));
                        
                        decimal tongtien = Convert.ToDecimal(dtddo.Rows[0]["THANH_TIEN"]) * Convert.ToDecimal(1.1);
                        rptSH.SetParameterValue("tongtien", tongtien.ToString("###,###,###,###"));
                        rptSH.SetParameterValue("bangchu", VNCurrency.ToString(tongtien));

                        UtilReport.RptManager.showReportToWin(this, rptSH, "", new string[] { "Formula1", "Formula2" }, new string[] { "Formula1", "Formula2" });
                        dsIn.Clear();

                        #endregion
                    }



            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbKhongdoc_Checked(object sender, RoutedEventArgs e)
        {
            checkDocchiso = false;
            txtChisothao.Text = "";
            txtChisothao.IsEnabled = false;
            Chisothao = 0;
        }

        private void ckbKhongdoc_Unchecked(object sender, RoutedEventArgs e)
        {
            checkDocchiso = true;
            txtChisothao.IsEnabled = true;
        }

        private void btnLayDuLieu_S_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                this.Cursor = Cursors.Wait;                

                setEntity_KH("btnTimKiem");
                if (dsNPC_TRTH_KHANG_Entity.Tables["NPC_TRTH_KHANG"].Rows.Count > 0)
                {
                    DataSet dsTemp;
                    dsTemp = GlobalServices.Service_Truythu.select_NPC_TRTH_KHANG_by_1_Col_co(dsNPC_TRTH_KHANG_Entity);                   

                    if (dsTemp != null)
                    {
                        strFind = "Yes";
                        DataTable dtHienthi = dsTemp.Tables[0].Copy();

                        if (dtHienthi.Rows.Count > 0)
                        {
                            dgrDSach_Truythu.ItemsSource = dtHienthi.DefaultView;
                            //lbltso.Content = "Tổng số: " + dgrOD_LO.Items.Count;                            

                            if (strBtnClick != "btnThemMoi" || strBtnClick != "SUA")
                            {
                                dgrDSach_Truythu.SelectedIndex = 0;
                            }

                            CheckIsEnableButtonSuaXoa();
                            this.Cursor = null;
                        }
                    }
                    else
                    {
                        this.Cursor = null;
                        MessageBox.Show("Không tìm thấy theo điều kiện !");
                        strFind = "No";
                        txtMa_TT_S.Focus();
                        e.Handled = true;
                    }

                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnChon_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                setCurrentData();
                CheckIsEnableButtonSuaXoa();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void setCurrentData()
        {
            try
            {
                DataRowView drv = dgrDSach_Truythu.SelectedItem as DataRowView;
                strDCHI_TTOAN = "";
                Items_text(string.Empty);

                if (drv != null)
                {
                    if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
                    {
                    }
                    else
                    {
                        intID_TRTH = Convert.ToInt64(drv.Row["ID_TRTH"].ToString());

                        DataSet dsKHANG = GlobalServices.Service_Truythu.select_NPC_TRTH_KHANG_by_id_truythu(strMa_dviqly, intID_TRTH);

                        DataSet dsCHI_SO = GlobalServices.Service_Truythu.select_NPC_TRTH_CHISO_by_id_truythu(strMa_dviqly, intID_TRTH);

                        DataSet dsDDO = GlobalServices.Service_Truythu.select_NPC_TRTH_DDO_by_id_truythu(strMa_dviqly, intID_TRTH);


                        #region KHACH_HANG
                        if (dsKHANG != null && dsKHANG.Tables[0].Rows.Count > 0)
                        {
                            txtTen_khang.Text = dsKHANG.Tables[0].Rows[0]["TEN_KHANG"].ToString();
                            txtDia_chi.Text = dsKHANG.Tables[0].Rows[0]["DIA_CHI"].ToString();
                            txtDai_dien_mua.Text = dsKHANG.Tables[0].Rows[0]["DDIEN_MUA"].ToString();
                            txtChucvu_mua.Text = dsKHANG.Tables[0].Rows[0]["CVU_MUA"].ToString();
                            txtMa_TT.Text = dsKHANG.Tables[0].Rows[0]["ID_TRTH"].ToString();

                            txtHoten1.Text = dsKHANG.Tables[0].Rows[0]["TEN_DDIEN1"].ToString();
                            txtChucvu1.Text = dsKHANG.Tables[0].Rows[0]["CVU_DDIEN1"].ToString();

                            if (dsKHANG.Tables[0].Rows[0]["TEN_DDIEN2"].ToString() != string.Empty)
                            {
                                txtHoten2.Text = dsKHANG.Tables[0].Rows[0]["TEN_DDIEN2"].ToString();
                            }

                            if (dsKHANG.Tables[0].Rows[0]["CVU_DDIEN2"].ToString() != string.Empty)
                            {
                                txtChucvu2.Text = dsKHANG.Tables[0].Rows[0]["CVU_DDIEN2"].ToString();
                            }

                           
                            txtNguyennhan.Text = dsKHANG.Tables[0].Rows[0]["NGUYEN_NHAN"].ToString();

                            strMa_khang = dsKHANG.Tables[0].Rows[0]["MA_KHANG"].ToString();

                            strLoai_khang = dsKHANG.Tables[0].Rows[0]["LOAI_KHANG"].ToString();

                            strDCHI_TTOAN = dsKHANG.Tables[0].Rows[0]["DCHI_TTOAN"].ToString();                            

                            if (strLoai_khang == "10")
                            {
                                rdbSinhhoat.IsChecked = true;
                            }
                            else
                            {
                                rdbNgoaiSH.IsChecked = true;
                            }

                            if (dsKHANG.Tables[0].Rows[0]["NGAY_KDINH"].ToString() != string.Empty)
                            {
                                dtpNgayKdinh.SelectedDate = Convert.ToDateTime(dsKHANG.Tables[0].Rows[0]["NGAY_KDINH"]);
                            }
                            else
                            {
                                dtpNgayKdinh.Text = "";
                            }

                            txtLoai_cto.Text = dsKHANG.Tables[0].Rows[0]["LOAI_CTO"].ToString();

                            if (dsKHANG.Tables[0].Rows[0]["SO_BB_KDINH"].ToString() != string.Empty)
                            {
                                txtSobbkd.Text = dsKHANG.Tables[0].Rows[0]["SO_BB_KDINH"].ToString();
                            }
                            else
                            {
                                txtSobbkd.Text = "";
                            }

                            if (dsKHANG.Tables[0].Rows[0]["SO_BB_KTRA"].ToString() != string.Empty)
                            {
                                txtSobbktra.Text = dsKHANG.Tables[0].Rows[0]["SO_BB_KTRA"].ToString();
                            }
                            else
                            {
                                txtSobbktra.Text = "";
                            }

                            if (dsKHANG.Tables[0].Rows[0]["NGAY_KTRA"].ToString() != string.Empty)
                            {
                                dtpKiemtra.SelectedDate = Convert.ToDateTime(dsKHANG.Tables[0].Rows[0]["NGAY_KTRA"]);
                            }
                            else
                            {
                                dtpKiemtra.Text = "";
                            }

                            Int32 t = 0;
                            if(Int32.TryParse(dsKHANG.Tables[0].Rows[0]["THANG_TT"].ToString(), out t) && Int32.TryParse(dsKHANG.Tables[0].Rows[0]["NAM_TT"].ToString(), out t))
                            {
                                dtpThangNamTT.SelectedDate = Convert.ToDateTime(dsKHANG.Tables[0].Rows[0]["THANG_TT"].ToString() + "/" + "01" + "/" + dsKHANG.Tables[0].Rows[0]["NAM_TT"].ToString());
                            }
                            else
                            {
                                dtpThangNamTT.Text = "";
                            }

                            if(dsKHANG.Tables[0].Rows[0]["SO_BB_TTHUAN"].ToString()!= string.Empty)
                            {
                                txtSobbTThuan.Text = dsKHANG.Tables[0].Rows[0]["SO_BB_TTHUAN"].ToString();
                            }
                            else
                            {
                                txtSobbTThuan.Text = "";
                            }

                            if(dsKHANG.Tables[0].Rows[0]["NGAY_TTHUAN"].ToString() != string.Empty)
                            {
                                dtpNgaythoathuan.SelectedDate = Convert.ToDateTime(dsKHANG.Tables[0].Rows[0]["NGAY_TTHUAN"]);
                            }
                            else
                            {
                                dtpNgaythoathuan.Text = "";
                            }

                            // Loai su co
                            if (dsKHANG.Tables[0].Rows[0]["LOAI_SUCO"].ToString() != string.Empty)
                            {
                                if (dsKHANG.Tables[0].Rows[0]["LOAI_SUCO"].ToString() == "0")
                                {
                                    cboLOAI_SUCO.SelectedIndex = 0;
                                }
                                else
                                    if (dsKHANG.Tables[0].Rows[0]["LOAI_SUCO"].ToString() == "1")
                                    {
                                        cboLOAI_SUCO.SelectedIndex = 1;
                                    }
                                    else
                                        if (dsKHANG.Tables[0].Rows[0]["LOAI_SUCO"].ToString() == "2")
                                        {
                                            cboLOAI_SUCO.SelectedIndex = 2;
                                        }
                                        else
                                            if (dsKHANG.Tables[0].Rows[0]["LOAI_SUCO"].ToString() == "3")
                                            {
                                                cboLOAI_SUCO.SelectedIndex = 3;
                                            }
                                            else
                                            {
                                                cboLOAI_SUCO.SelectedIndex = 0;
                                            }

                            }
                            else
                            {
                                cboLOAI_SUCO.SelectedIndex = 0;
                            }

                            if (dsKHANG.Tables[0].Rows[0]["CAN_CU"].ToString() != string.Empty)
                            {
                                txtSaiso.Text = dsKHANG.Tables[0].Rows[0]["CAN_CU"].ToString();
                            }

                            strNguoiTao = dsKHANG.Tables[0].Rows[0]["NGUOI_TAO"].ToString();
                            dtimeNgaytao = Convert.ToDateTime(dsKHANG.Tables[0].Rows[0]["NGAY_TAO"]);

                        }
                        #endregion


                        #region CHI_SO
                        if (dsCHI_SO != null && dsCHI_SO.Tables[0].Rows.Count > 0)
                        {
                            if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString() != "CTH")
                            {
                                #region -- thong thuong
                                // Thông tin  chỉ số gần nhất, chỉ số công tơ tháo .... từ KY=0
                                DataRow[] dr = dsCHI_SO.Tables[0].Select("KY = 0");
                                if (dr.Count() > 0)
                                {
                                    double dctry;
                                    txtchiso_gannhat.Text = dr[0]["CHISO_CU"].ToString();
                                    dtpGhigannhat.SelectedDate = Convert.ToDateTime(dr[0]["NGAY_DKY"]).AddDays(-1);
                                    if (double.TryParse(dr[0]["CHISO_MOI"].ToString(), out dctry))
                                    {
                                        txtChisothao.Text = dr[0]["CHISO_MOI"].ToString();
                                    }
                                    dtpDungHoatdong.SelectedDate = Convert.ToDateTime(dr[0]["NGAY_CKY"]);

                                    Id_chisoKy0 = Convert.ToInt64(dr[0]["ID_CHISO"]);
                                }

                                // Thông tin  chỉ số kỳ gần nhất nếu không tròn kỳ KY = 10
                                DataRow[] dr10 = dsCHI_SO.Tables[0].Select("KY = 10");
                                if (dr10.Count() > 0)
                                {
                                    Id_chisoKy10 = Convert.ToInt32(dr10[0]["ID_CHISO"]);
                                    dtNgayDKY10 = Convert.ToDateTime(dr10[0]["NGAY_DKY"]);
                                    dtNgayCKY10 = Convert.ToDateTime(dr10[0]["NGAY_CKY"]);
                                    sanluongKy10 = Convert.ToDouble(dr10[0]["SAN_LUONG"]);
                                }

                                DataRow dr1 = dsCHI_SO.Tables[0].Select("KY = 0").FirstOrDefault();
                                if (dr1 != null)
                                {
                                    dsCHI_SO.Tables[0].Rows.Remove(dr1);
                                }

                                countKy = dsCHI_SO.Tables[0].Rows.Count;

                                if (countKy >= 3)
                                {
                                    Id_chisoKy1 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 1]["ID_CHISO"].ToString());
                                    txtKy1.Text = dsCHI_SO.Tables[0].Rows[countKy - 1]["SAN_LUONG"].ToString();
                                    dtpTungay1.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                                    dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);
                                    Ky1 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 1]["KY"].ToString());

                                    Id_chisoKy2 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 2]["ID_CHISO"].ToString());
                                    txtKy2.Text = dsCHI_SO.Tables[0].Rows[countKy - 2]["SAN_LUONG"].ToString();
                                    dtpTungay2.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 2]["NGAY_DKY"]);
                                    dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 2]["NGAY_CKY"]);
                                    Ky2 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 2]["KY"].ToString());

                                    Id_chisoKy3 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 3]["ID_CHISO"].ToString());
                                    txtKy3.Text = dsCHI_SO.Tables[0].Rows[countKy - 3]["SAN_LUONG"].ToString();
                                    dtpTungay3.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 3]["NGAY_DKY"]);
                                    dtpDenngay3.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 3]["NGAY_CKY"]);
                                    Ky3 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 3]["KY"].ToString());
                                }
                                else
                                    if (countKy == 2)
                                    {
                                        Id_chisoKy1 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 1]["ID_CHISO"].ToString());
                                        txtKy1.Text = dsCHI_SO.Tables[0].Rows[countKy - 1]["SAN_LUONG"].ToString();
                                        dtpTungay1.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                                        dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);
                                        Ky1 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 1]["KY"].ToString());

                                        Id_chisoKy2 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 2]["ID_CHISO"].ToString());
                                        txtKy2.Text = dsCHI_SO.Tables[0].Rows[countKy - 2]["SAN_LUONG"].ToString();
                                        dtpTungay2.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 2]["NGAY_DKY"]);
                                        dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 2]["NGAY_CKY"]);
                                        Ky2 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 2]["KY"].ToString());
                                    }
                                    else
                                        if (countKy == 1)
                                        {
                                            Id_chisoKy1 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 1]["ID_CHISO"].ToString());
                                            txtKy1.Text = dsCHI_SO.Tables[0].Rows[countKy - 1]["SAN_LUONG"].ToString();
                                            dtpTungay1.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                                            dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);
                                            Ky1 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[countKy - 1]["KY"].ToString());
                                        }
                                //txtchiso_gannhat.Text = dsCHI_SO.Tables[0].Rows[0]["CHISO_MOI"].ToString();
                                //dtpGhigannhat.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[0]["NGAY_CKY"]);
                                strSo_cto = dsCHI_SO.Tables[0].Rows[0]["SO_CTO"].ToString();
                                strMa_cto = dsCHI_SO.Tables[0].Rows[0]["MA_CTO"].ToString();
                                txtSocto.Text = strSo_cto;
                                txtMacto.Text = strMa_cto;
                                hsn = Convert.ToInt32(dsCHI_SO.Tables[0].Rows[0]["HSN"]);
                                txthsn.Text = hsn.ToString();
                                
                                #endregion
                            }
                            else
                            {
                                #region -- thoai hoan

                                strSo_cto = dsCHI_SO.Tables[0].Rows[0]["SO_CTO"].ToString();
                                strMa_cto = dsCHI_SO.Tables[0].Rows[0]["MA_CTO"].ToString();
                                txtSocto.Text = strSo_cto;
                                txtMacto.Text = strMa_cto;
                                hsn = Convert.ToInt32(dsCHI_SO.Tables[0].Rows[0]["HSN"]);
                                txthsn.Text = hsn.ToString();
                                Id_chisoKy0 = Convert.ToInt64(dsCHI_SO.Tables[0].Rows[0]["ID_CHISO"].ToString());
                                dtpTungayCancuTH.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[0]["NGAY_DKY"]);
                                dtpDenngayCancuTH.SelectedDate = Convert.ToDateTime(dsCHI_SO.Tables[0].Rows[0]["NGAY_CKY"]);
                                txtSokyCancuTH.Text = dsCHI_SO.Tables[0].Rows[0]["KY"].ToString();
                                txtChisothao.Text = dsCHI_SO.Tables[0].Rows[0]["CHISO_MOI"].ToString();

                                #endregion
                            }

                        }
                        else
                        {
                            if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(1,1) == "3")
                            {
                            }
                            else
                            {
                                MessageBox.Show("Không có thông tin sản lượng căn cứ !");
                            }
                        }
                        #endregion



                        #region DIEM_DO
                        if (dsDDO != null && dsDDO.Tables[0].Rows.Count > 0)
                        {
                            txtMa_ddo_I.Text = dsDDO.Tables[0].Rows[0]["MA_DDO"].ToString();
                            strMa_ddo = dsDDO.Tables[0].Rows[0]["MA_DDO"].ToString();

                            strSo_cto = dsDDO.Tables[0].Rows[0]["SO_CTO"].ToString();
                            strMa_cto = dsDDO.Tables[0].Rows[0]["MA_CTO"].ToString();
                            txtSocto.Text = strSo_cto;
                            txtMacto.Text = strMa_cto;
                            
                            dtpDungCapDien.SelectedDate = Convert.ToDateTime(dsDDO.Tables[0].Rows[0]["NGAYTRTH_DEN"]);

                            if(dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(1,1) == "3")
                            {
                                ckbTutinh.IsChecked = true;
                                ckbThoaihoan.IsChecked = false;
                                txtSLtt.Text = dsDDO.Tables[0].Rows[0]["SL_TRTHU"].ToString();
                                txtTientt.Text = dsDDO.Tables[0].Rows[0]["THANH_TIEN"].ToString();
                                tabTutinh.IsSelected = true;
                                tabsluongCancu.IsEnabled = false;
                                tabThoaihoan.IsEnabled = false;

                                // Xóa dữ liệu hiển thị phần căn cứ
                                txtKy1.Text = "";
                                txtKy2.Text = "";
                                txtKy3.Text = "";
                                dtpTungay1.Text = "";
                                dtpTungay2.Text = "";
                                dtpTungay3.Text = "";
                                dtpDenngay1.Text = "";
                                dtpDenngay2.Text = "";
                                dtpDenngay3.Text = "";

                                txtSokyCancuTH.Text = "";
                                dtpTungayCancuTH.Text = "";
                                dtpDenngayCancuTH.Text = "";
                                txtSaiso.Text = "";
                                txtTienTH.Text = "";

                            }
                            else
                                if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString() != "CTH")
                                {
                                    ckbTutinh.IsChecked = false;
                                    ckbThoaihoan.IsChecked = false;
                                    tabsluongCancu.IsSelected = true;
                                    tabTutinh.IsEnabled = false;
                                    txtSogiomatdiencacKy.Text = dsDDO.Tables[0].Rows[0]["TG_MDIEN_CANCU"].ToString();
                                    txtSogiomatdienTT.Text = dsDDO.Tables[0].Rows[0]["TG_MDIEN_TRTHU"].ToString();

                                    string s = dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(2, 1);
                                    if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString().Substring(2, 1) == "0")// khong doc duoc chi so  
                                    {
                                        ckbKhongdoc.IsChecked = true;
                                    }
                                    else
                                    {
                                        ckbKhongdoc.IsChecked = false;
                                    }
                                    //// Xóa dữ liệu hiển thị phần tự tính                                    
                                    txtSLtt.Text = "";
                                    txtTientt.Text = "";


                                    txtSokyCancuTH.Text = "";
                                    dtpTungayCancuTH.Text = "";
                                    dtpDenngayCancuTH.Text = "";
                                    txtSaiso.Text = "";
                                    txtTienTH.Text = "";

                                }
                                else
                                    if (dsDDO.Tables[0].Rows[0]["MA_LDO"].ToString() == "CTH")
                                    {
                                        ckbThoaihoan.IsChecked = true;
                                        ckbTutinh.IsChecked = false;
                                        if (Convert.ToDouble(dsDDO.Tables[0].Rows[0]["THANH_TIEN"]) < 0)
                                        {
                                            txtTienTH.Text = (Convert.ToDouble(dsDDO.Tables[0].Rows[0]["THANH_TIEN"]) * Convert.ToDouble(-1)).ToString();
                                        }
                                        else
                                        {
                                            txtTienTH.Text = dsDDO.Tables[0].Rows[0]["THANH_TIEN"].ToString();
                                        }

                                        tabThoaihoan.IsSelected = true;
                                        tabTutinh.IsEnabled = false;
                                        tabsluongCancu.IsEnabled = false;

                                        // Xóa dữ liệu hiển thị phần căn cứ
                                        txtKy1.Text = "";
                                        txtKy2.Text = "";
                                        txtKy3.Text = "";
                                        dtpTungay1.Text = "";
                                        dtpTungay2.Text = "";
                                        dtpTungay3.Text = "";
                                        dtpDenngay1.Text = "";
                                        dtpDenngay2.Text = "";
                                        dtpDenngay3.Text = ""; ;

                                        txtSLtt.Text = "";
                                        txtTientt.Text = "";
                                    }
                                

                        }
                        else
                        {
                            MessageBox.Show("Không có thông tin truy thu !");
                        }
                        #endregion

                        tabTruythu.IsSelected = true;

                    }
                }
            }
            catch (Exception ex)
            { MessageBox.Show(ex.ToString()); return; }

        }

        
        private void btnXoa_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                this.Cursor = null;

                bool bolCheckDelete = false;
                strBtnClick = "XOA";
                if (MessageBox.Show("Bạn có chắc chắn xoá bản ghi có mã " + txtMa_TT.Text.Trim() + "-" + txtMa_ddo_I.Text.Trim() + " không?", "Thông báo", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    setEntity_CHISO("btnXoa");
                    setEntity_DDO("btnXoa");
                    setEntity_KH("btnXoa"); 
                    intDongFocus = dgrDSach_Truythu.SelectedIndex;

                    bolCheckDelete = GlobalServices.Service_Truythu.delete_NPC_TRTH_CHISO_by_IDTRTH(strMa_dviqly, Convert.ToInt64(txtMa_TT.Text.Trim()), ref strError);
                    
                    if (bolCheckDelete == true)
                    {
                        bolCheckDelete = GlobalServices.Service_Truythu.delete_NPC_TRTH_DDO_by_IDTRTH(strMa_dviqly, Convert.ToInt64(txtMa_TT.Text.Trim()), ref strError);

                        if (bolCheckDelete == true)
                        {
                            bolCheckDelete = GlobalServices.Service_Truythu.delete_NPC_TRTH_KHANG_by_IDTRTH(strMa_dviqly, Convert.ToInt64(txtMa_TT.Text.Trim()), ref strError);
                        }
                        else
                        {
                            this.Cursor = null;
                            MessageBox.Show("Không xóa được dữ liệu điểm đo !");
                            return;
                        }

                        if (bolCheckDelete == true)
                        {
                            this.Cursor = null;
                            DataRowView drv = dgrDSach_Truythu.SelectedItem as DataRowView;
                            if (drv != null)
                            {
                                drv.Delete();
                                //dtHienthi.AcceptChanges();
                                MessageBox.Show("Xoá dữ liệu thành công!", "Thông báo", MessageBoxButton.OK);                                
                            }
                            Items_text(string.Empty);

                        }
                        else
                        {
                            this.Cursor = null;
                            if (strError.Contains("ORA-02292") == true)
                            {
                                MessageBox.Show("Mã truy thu " + txtMa_TT.Text + " đang được sử dụng. Không thể xoá bản ghi này.", "Thông báo", MessageBoxButton.OK);
                            }
                        }
                        
                    }
                    else
                    {
                        this.Cursor = null;
                        MessageBox.Show("Không xóa được dữ liệu chỉ số !");
                        return;                      
                    }
                }
                CheckIsEnableButtonSuaXoa();
                strBtnClick = "";
                if (dgrDSach_Truythu.Items.Count > intDongFocus)
                {
                    dgrDSach_Truythu.SelectedIndex = intDongFocus;
                }
                else dgrDSach_Truythu.SelectedIndex = intDongFocus - 1;
                btnXoa.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void dtpDungHoatdong_KeyDown(object sender, KeyEventArgs e)
        {
            
        }

        public void Hienthi_dlieu_cancu()
        {
            try
            {
                //Thông tin sản lượng các kỳ liền kề
                if (dsCancu != null && dsCancu.Tables[0].Rows.Count > 0)
                {
                    countKy = dsCancu.Tables[0].Rows.Count;
                    
                    if (countKy < 3) // không đủ 3 kỳ trước sự cố
                    {
                        dsCancu.Reset();
                        if (ckbKhongdoc.IsChecked == true)
                        {
                            dsCancu = GlobalServices.Service_Truythu.Get_Sanluong_Cancu_Co_After(strMa_dviqly, strMa_ddo, dtpDungHoatdong.SelectedDate.Value.Date, dtpDungCapDien.SelectedDate.Value.Date);
                        }
                        else
                        {
                            dsCancu = GlobalServices.Service_Truythu.Get_Sanluong_Cancu_Co_After(strMa_dviqly, strMa_ddo, dtpDungHoatdong.SelectedDate.Value.Date, dtpDungCapDien.SelectedDate.Value.Date);
                        } 
                    }

                    countKyTruoc = dsCancu.Tables["SAN_LUONG"].Rows.Count;
                    if (dsCancu.Tables.Contains("SAN_LUONG_AFTER"))
                    {
                        countKySau = dsCancu.Tables["SAN_LUONG_AFTER"].Rows.Count;
                        countKy = countKyTruoc + countKySau;
                    }
                    else
                    {
                        countKySau = 0;
                        countKy = countKyTruoc;
                    }

                    

                    if (countKy < 3)
                    {
                        if (MessageBox.Show("Không đủ 3 chu kỳ làm căn cứ, có tiếp tục tính truy thu ?", "Thông báo", MessageBoxButton.YesNo) == MessageBoxResult.No)
                        { return; }
                        else
                        { }
                    }

                    #region === co ca ky truoc va ky sau ===

                    if (countKyTruoc < 3 && countKySau > 0)
                    {
                        if (countKy >= 3) // đủ 3 kỳ làm căn cứ
                        {
                            if (countKyTruoc == 2)
                            {
                                txtKy1.Text = dsCancu.Tables[0].Rows[countKyTruoc - 1]["SLUONG_END"].ToString();
                                dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_DKY"]);
                                dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_CKY"]);

                                txtKy2.Text = dsCancu.Tables[0].Rows[countKyTruoc - 2]["SLUONG_END"].ToString();
                                dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 2]["NGAY_DKY"]);
                                dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 2]["NGAY_CKY"]);

                                // hien thi ky sau
                                txtKy3.Text = dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["SLUONG_END"].ToString();
                                dtpTungay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["NGAY_DKY"]);
                                dtpDenngay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["NGAY_CKY"]);
                            }
                            else
                            {
                                txtKy1.Text = dsCancu.Tables[0].Rows[countKyTruoc - 1]["SLUONG_END"].ToString();
                                dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_DKY"]);
                                dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_CKY"]);


                                //hien thi ky sau
                                txtKy2.Text = dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["SLUONG_END"].ToString();
                                dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["NGAY_DKY"]);
                                dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["NGAY_CKY"]);

                                txtKy3.Text = dsCancu.Tables["SAN_LUONG_AFTER"].Rows[1]["SLUONG_END"].ToString();
                                dtpTungay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[1]["NGAY_DKY"]);
                                dtpDenngay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[1]["NGAY_CKY"]);
                            }
                        }
                        else
                            if (countKy == 2)
                            {
                                if (countKyTruoc == 2)
                                {
                                    txtKy1.Text = dsCancu.Tables[0].Rows[countKyTruoc - 1]["SLUONG_END"].ToString();
                                    dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_DKY"]);
                                    dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_CKY"]);

                                    txtKy2.Text = dsCancu.Tables[0].Rows[countKyTruoc - 2]["SLUONG_END"].ToString();
                                    dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 2]["NGAY_DKY"]);
                                    dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 2]["NGAY_CKY"]);
                                }
                                else
                                {
                                    txtKy1.Text = dsCancu.Tables[0].Rows[countKyTruoc - 1]["SLUONG_END"].ToString();
                                    dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_DKY"]);
                                    dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_CKY"]);

                                    //hien thi ky sau
                                    txtKy2.Text = dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["SLUONG_END"].ToString();
                                    dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["NGAY_DKY"]);
                                    dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables["SAN_LUONG_AFTER"].Rows[0]["NGAY_CKY"]);
                                }
                            }
                            else
                            {
                                txtKy1.Text = dsCancu.Tables[0].Rows[countKyTruoc - 1]["SLUONG_END"].ToString();
                                dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_DKY"]);
                                dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKyTruoc - 1]["NGAY_CKY"]);
                            }
 
                    }

                    #endregion


                    #region === chi co ky truoc su co ====
                    if (countKy >= 3 && countKySau < 1)
                    {
                        txtKy1.Text = dsCancu.Tables[0].Rows[countKy - 1]["SLUONG_END"].ToString();
                        dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                        dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);

                        txtKy2.Text = dsCancu.Tables[0].Rows[countKy - 2]["SLUONG_END"].ToString();
                        dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_DKY"]);
                        dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_CKY"]);

                        txtKy3.Text = dsCancu.Tables[0].Rows[countKy - 3]["SLUONG_END"].ToString();
                        dtpTungay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 3]["NGAY_DKY"]);
                        dtpDenngay3.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 3]["NGAY_CKY"]);
                    }
                    else
                        if (countKy == 2 && countKySau < 1)
                        {
                            txtKy1.Text = dsCancu.Tables[0].Rows[countKy - 1]["SLUONG_END"].ToString();
                            dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                            dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);

                            txtKy2.Text = dsCancu.Tables[0].Rows[countKy - 2]["SLUONG_END"].ToString();
                            dtpTungay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_DKY"]);
                            dtpDenngay2.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 2]["NGAY_CKY"]);
                        }
                        else
                            if (countKy == 1 && countKySau < 1)
                            {
                                txtKy1.Text = dsCancu.Tables[0].Rows[countKy - 1]["SLUONG_END"].ToString();
                                dtpTungay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_DKY"]);
                                dtpDenngay1.SelectedDate = Convert.ToDateTime(dsCancu.Tables[0].Rows[countKy - 1]["NGAY_CKY"]);
                            }
                    
                    #endregion

                    if (dsCancu.Tables["CHI_SO"].Rows.Count > 0)
                    {
                        txtchiso_gannhat.Text = dsCancu.Tables["CHI_SO"].Rows[0]["CHISO_MOI"].ToString();
                        dtpGhigannhat.SelectedDate = Convert.ToDateTime(dsCancu.Tables["CHI_SO"].Rows[0]["NGAY_CKY"]);
                        strSo_cto = dsCancu.Tables["CHI_SO"].Rows[0]["SO_CTO"].ToString();
                        strMa_cto = dsCancu.Tables["CHI_SO"].Rows[0]["MA_CTO"].ToString();
                        txtSocto.Text = strSo_cto;
                        txtMacto.Text = strMa_cto;
                        hsn = Convert.ToInt32(dsCancu.Tables["CHI_SO"].Rows[0]["HS_NHAN"]);
                        txthsn.Text = hsn.ToString();
                        txtLoai_cto.Text = dsCancu.Tables["LOAICTO"].Rows[0]["LOAI_CTO"].ToString();
                    }
                    
                    btnLayDuLieu_I.IsEnabled = false; 
                    btnGhi.IsEnabled = true;
                    txtMa_ddo_I.IsReadOnly = true;
                    Enable_KyCancu(true, countKy);

                }
                else
                {
                    MessageBox.Show("Không có dữ liệu Sản lượng các kỳ liền kề làm căn cứ !");
                    return;
                }
            }
            catch (Exception ex)
            { 
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbTunhap_Checked(object sender, RoutedEventArgs e)
        {
            if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
            {
                
                //rdbSinhhoat.IsEnabled = true;
                //rdbNgoaiSH.IsEnabled = true;
                txthsn.IsReadOnly = false;
                txthsn.IsEnabled = true;
                //btnLayCancu.IsEnabled = false;
                btnGhi.IsEnabled = true;
            }

            if (strBtnClick == "SUA")
            {
                txtSoky.IsEnabled = false; ;
                btnLayCancu.IsEnabled = false;
            }
            else
            {
                txtSoky.IsEnabled = true ;
            }
        }

        private void ckbTunhap_Unchecked(object sender, RoutedEventArgs e)
        {
            txtSoky.IsEnabled = false;
            //rdbSinhhoat.IsEnabled = false;
            //rdbNgoaiSH.IsEnabled = false;
            txthsn.IsReadOnly = true;
            txthsn.IsEnabled = false;
            //txthsn.Text = "";
            if (strBtnClick == "btnThemMoi")
            {
                btnLayCancu.IsEnabled = true;
            }
            else
            {
                btnLayCancu.IsEnabled = false; ;
            }

            if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
            {
                btnGhi.IsEnabled = true;
            }
        }

        private void btnLayCancu_Click(object sender, RoutedEventArgs e)
        {
            try
            {                
                if (strBtnClick == "btnThemMoi")
                {
                    if (ckbTunhap.IsChecked == false)
                    {
                        if (!dtpDungHoatdong.SelectedDate.HasValue)
                        {
                            MessageBox.Show("Hãy nhập ngày dừng hoạt động !");
                            return;
                        }

                        dsCancu = GlobalServices.Service_Truythu.Get_Sanluong_Cancu_Co(strMa_dviqly, strMa_ddo, dtpDungHoatdong.SelectedDate.Value.Date);
                        Hienthi_dlieu_cancu();
                    }
                    else
                    {
                        if (txtSoky.Text.Trim().ToString() == string.Empty)
                        {
                            MessageBox.Show("Hãy nhập số kỳ !");
                            txtSoky.Focus();
                            return;
                        }
                        else
                        {
                            int i = 0;
                            if (!int.TryParse(txtSoky.Text.Trim(), out i))
                            {
                                MessageBox.Show("Hãy nhập số kỳ !");
                                txtSoky.Focus();
                                return;
                            }
                            else
                            {
                                i = Convert.ToInt32(txtSoky.Text.Trim());
                                if (i < 0 || i > 3)
                                {
                                    MessageBox.Show("Số kỳ từ 1 đến 3 !");
                                    txtSoky.Focus();
                                    return;
                                }
                                else
                                {
                                    Enable_KyCancu(true, i);
                                }
                            }
                        }
                    }
                }               
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbTutinh_Checked(object sender, RoutedEventArgs e)
        {            
            tabTutinh.IsSelected = true;

            if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
            {
                tabTutinh.IsEnabled = true;
                tabsluongCancu.IsEnabled = false;
                tabThoaihoan.IsEnabled = false;

                txtSLtt.IsEnabled = true;
                txtTientt.IsEnabled = true;
                txtSobbTThuan.IsEnabled = true;
                dtpNgaythoathuan.IsEnabled = true;

                ckbThoaihoan.IsEnabled = false;
                ckbKhongdoc.IsEnabled = false;
                ckbTunhap.IsEnabled = false;
                txtSoky.IsEnabled = false;
                dtpDungHoatdong.IsEnabled = false;
                btnLayCancu.IsEnabled = false;
                txtchiso_gannhat.IsEnabled = false;
                dtpGhigannhat.IsEnabled = false;
                txtChisothao.IsEnabled = false;
                txthsn.IsEnabled = false;
                txtSogiomatdienTT.IsEnabled = false;

                btnGhi.IsEnabled = true;

            }
            else
            {
                txtSLtt.IsEnabled = false;
                txtTientt.IsEnabled = false;
                txtSobbTThuan.IsEnabled = false;
                dtpNgaythoathuan.IsEnabled = false;
            }
        }

        private void ckbTutinh_Unchecked(object sender, RoutedEventArgs e)
        {
            tabTutinh.IsEnabled = false;
            tabThoaihoan.IsEnabled = false;
            tabsluongCancu.IsSelected = true;

            if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
            {
                tabsluongCancu.IsEnabled = true;

                ckbThoaihoan.IsEnabled = true;
                ckbKhongdoc.IsEnabled = true;
                //ckbTunhap.IsEnabled = true;
                //txtSoky.IsEnabled = true;
                dtpDungHoatdong.IsEnabled = true;
                btnLayCancu.IsEnabled = true;
                txtchiso_gannhat.IsEnabled = true;
                dtpGhigannhat.IsEnabled = true;
                txtChisothao.IsEnabled = true;
                txthsn.IsEnabled = true;
                txtSogiomatdienTT.IsEnabled = true;

                btnGhi.IsEnabled = false;
            }
        }

        private void btnLayDuLieu_S_DDO_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (txtMa_khang_S_DDO.Text.Trim().ToString() != string.Empty)
                {
                    string strMa_khang = txtMa_khang_S_DDO.Text.Trim().ToString();
                    DataSet ds = new DataSet();
                    strError = "";
                    ds = GlobalServices.Service_Truythu.Get_DDO_by_MaKHANG(strMa_dviqly, strMa_khang, ref strError);
                    if (ds != null && ds.Tables[0].Rows.Count > 0)
                    {
                        dgrDSach_DDo.ItemsSource = ds.Tables[0].DefaultView;
                    }
                    else
                    {
                        MessageBox.Show("Không lấy được dữ liệu \n" + strError.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void ckbThoaihoan_Checked(object sender, RoutedEventArgs e)
        {
            tabThoaihoan.IsSelected = true;

            if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
            {
                tabThoaihoan.IsEnabled = true;
                tabsluongCancu.IsEnabled = false;
                tabTutinh.IsEnabled = false;

                txtSokyCancuTH.IsEnabled = true;
                dtpTungayCancuTH.IsEnabled = true;
                dtpDenngayCancuTH.IsEnabled = true;
                txtSaiso.IsEnabled = true;
                txtTienTH.IsEnabled = true;

                ckbTutinh.IsEnabled = false;
                ckbKhongdoc.IsEnabled = false;
                ckbTunhap.IsEnabled = false;
                txtSoky.IsEnabled = false;
                dtpNgayKdinh.IsEnabled = true;
                txtSobbkd.IsEnabled = true;
                dtpDungHoatdong.IsEnabled = false;
                btnLayCancu.IsEnabled = false;
                txtchiso_gannhat.IsEnabled = false;
                dtpGhigannhat.IsEnabled = false;
                txtChisothao.IsEnabled = true;
                txthsn.IsEnabled = false;
                txtSogiomatdienTT.IsEnabled = false;

                btnGhi.IsEnabled = true;

            }
            else
            {
                txtSokyCancuTH.IsEnabled = false;
                dtpTungayCancuTH.IsEnabled = false;
                dtpDenngayCancuTH.IsEnabled = false;
                txtSaiso.IsEnabled = false;
                txtTienTH.IsEnabled = false;

            }
        }

        private void ckbThoaihoan_Unchecked(object sender, RoutedEventArgs e)
        {
            tabThoaihoan.IsEnabled = false;
            tabTutinh.IsEnabled = false;
            tabsluongCancu.IsSelected = true;

            if (strBtnClick == "btnThemMoi" || strBtnClick == "SUA")
            {
                tabsluongCancu.IsEnabled = true;

                ckbTutinh.IsEnabled = true;
                ckbKhongdoc.IsEnabled = true;
                ckbTunhap.IsEnabled = true;
                txtSoky.IsEnabled = false;
                dtpNgayKdinh.IsEnabled = true;
                txtSobbkd.IsEnabled = true;
                dtpDungHoatdong.IsEnabled = true;
                btnLayCancu.IsEnabled = true;
                txtchiso_gannhat.IsEnabled = true;
                dtpGhigannhat.IsEnabled = true;
                txtChisothao.IsEnabled = true;
                txthsn.IsEnabled = true;
                txtSogiomatdienTT.IsEnabled = true;

                btnGhi.IsEnabled = true;
            }
        }
    }
}
